我使用非ascii字符为PowerShell创建了一个UTF8脚本.
characters.ps1:
Write-Host "ç â ã á à"
Run Code Online (Sandbox Code Playgroud)
在PowerShell控制台中运行脚本时,它会输出错误的字符.

但是,如果我直接在控制台中编写字符,它们将按预期显示:

有谁知道是什么原因造成这种行为?
问题来自于我编写的脚本,其中包含非编码路径,包括非ascii字符.当我尝试将路径作为参数传递给cmdlet时(在我将要复制文件夹的情况下)命令失败,因为它无法找到路径(在屏幕中输出错误).
我正在构建服务器中构建/打包Web应用程序,但它失败并出现以下异常:
ASPNETCOMPILER错误ASPCONFIG:无法找到CodeDom提供程序类型"Microsoft.VisualC.CppCodeProvider,CppCodeProvider,Version = 10.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a".
构建服务器:
该应用程序是一个ASP MVC 4 Web应用程序,面向.NET 4.5.
构建配置包括使用MSBuild构建解决方案,允许部署到包,以便稍后发布.
通过TeamCity的日志,我可以看到当MSBuild运行"aspnet_compiler.exe"时出现错误.
构建在我的开发机器中没有问题,也可以毫无问题地将它发布到本地IIS.
有谁知道导致这个问题的原因是什么?
UPDATE
我最近在构建服务器中构建的应用程序中添加了一些自定义的可移植类库项目.构建工作正常,但在此之后它停止工作并向我显示以下消息:
C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(983,5):警告MSB3644:框架".NETPortable,Version = v4.0,Profile = Profile136"的引用程序集不是找到.
C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1578,5):警告MSB3270:正在构建的项目的处理器体系结构"MSIL"与处理器体系结构之间存在不匹配引用"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll","AMD64".
错误CS0234:命名空间"系统"中不存在类型或命名空间名称"Linq"(您是否缺少程序集引用?)
构建服务器规范:
该解决方案是.NET 4.0应用程序,可移植项目仅针对.NET4.0 + e Silverlight 5.

我检查了我的开发机器(Windows 8,Visual Studio 2012).确实有一个文件夹"C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile136"(事实上,.NET 4.0的配置文件最多可达158).但是,在构建计算机中,只有最多131个配置文件的文件夹.
便携式类库工具是最新的吗?它似乎错过了为最新平台安装配置文件.
UPDATE
我将开发机器的".NETPortable\v4.0\Profile\Profile136"复制到构建服务器,现在应用程序已成功构建.我仍然想知道为什么安装Portable Class Library Tools不能开箱即用.
我有一个带有Entity Framework 5.0 e Sql Server CE 4.0的.NET4.0应用程序.
我有两个实体,一对多(父/子)关系.我已将其配置为在父删除时级联删除,但由于某种原因它似乎不起作用.
这是我的实体的简化版本:
public class Account
{
public int AccountKey { get; set; }
public string Name { get; set; }
public ICollection<User> Users { get; set; }
}
internal class AccountMap : EntityTypeConfiguration<Account>
{
public AccountMap()
{
this.HasKey(e => e.AccountKey);
this.Property(e => e.AccountKey).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.Property(e => e.Name).IsRequired();
}
}
public class User
{
public int UserKey { get; set; }
public string Name { get; set; }
public Account Account { get; set; …Run Code Online (Sandbox Code Playgroud) 我的目标是实现异步自托管WCF服务,该服务将在单个线程中运行所有请求并充分利用新的C#5异步功能.
我的服务器将是一个控制台应用程序中,我将设置一个SingleThreadSynchronizationContext,按指定位置,创建和打开的ServiceHost,然后运行SynchronizationContext,所以所有的WCF请求都在同一个线程来处理.
问题是,尽管服务器能够成功处理同一线程中的所有请求,但异步操作阻止执行并被序列化,而不是隔行扫描.
我准备了一个简化的样本来重现这个问题.
这是我的服务合同(服务器和客户端相同):
[ServiceContract]
public interface IMessageService
{
[OperationContract]
Task<bool> Post(String message);
}
Run Code Online (Sandbox Code Playgroud)
服务实现如下(它有点简化,但最终实现可以访问数据库,甚至以异步方式调用其他服务):
public class MessageService : IMessageService
{
public async Task<bool> Post(string message)
{
Console.WriteLine(string.Format("[Thread {0} start] {1}", Thread.CurrentThread.ManagedThreadId, message));
await Task.Delay(5000);
Console.WriteLine(string.Format("[Thread {0} end] {1}", Thread.CurrentThread.ManagedThreadId, message));
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
该服务托管在控制台应用程序中:
static void Main(string[] args)
{
var syncCtx = new SingleThreadSynchronizationContext();
SynchronizationContext.SetSynchronizationContext(syncCtx);
using (ServiceHost serviceHost = new ServiceHost(typeof(MessageService)))
{
NetNamedPipeBinding binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
serviceHost.AddServiceEndpoint(typeof(IMessageService), …Run Code Online (Sandbox Code Playgroud) 我们有一个设备,我想使用printf函数向IDE发送消息以进行调试.设置:
ARM Cortex-M3设备
ULINK2接口
uVision4 IDE
我已按照此链接中的说明操作,以便能够在"Debug(printf)Viewer"中查看消息.首先,我修改了"retarget.c"文件,将输出重定向到ITM界面:
#include <stdio.h>
#include <rt_misc.h>
#pragma import(__use_no_semihosting_swi)
// Para utilização do saida de debug através do ULINK2
#define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n)))
#define ITM_Port16(n) (*((volatile unsigned short*)(0xE0000000+4*n)))
#define ITM_Port32(n) (*((volatile unsigned long *)(0xE0000000+4*n)))
#define DEMCR (*((volatile unsigned long *)(0xE000EDFC)))
#define TRCENA 0x01000000
struct __FILE { int handle; /* Add whatever you need here */ };
FILE __stdout;
// Escreve caractere na porta de Debug
int sendchar (int ch) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用canplayer重播一些candump文件,但没有成功.当我尝试运行canplayer时,它只是执行并返回,不知道发生了什么.
我到目前为止所做的尝试:
设置1
设置2
我在两台运行Ubuntu 12.04的不同机器上尝试过这些测试,结果相同.
你知道它可能是什么原因吗?
考虑脚本“test.ps1:
Get-EventLog -list | gm
Run Code Online (Sandbox Code Playgroud)
当从 Powershell 控制台(“.\test.ps1”)调用它时,它会按预期输出成员。
但是,以下脚本不显示“Get-EventLog -list | gm”的输出:
脚本1
Get-EventLog -list | gm
break
Run Code Online (Sandbox Code Playgroud)
脚本2
Get-EventLog -list | gm
$yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Continua execucao"
$no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "Cancela operacao"
$options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no)
$result = $host.ui.PromptForChoice("Title", "Message", $options, 0)
Run Code Online (Sandbox Code Playgroud)
如果我将“Get-EventLog -list | gm”更改为“Hello World”等文本,则在两种情况下都会正确显示。
为什么不显示 cmdlet 的输出?
我正在使用Visual Studio 2012开发带有WPF(.NET 4.0)客户端的ASP WebAPI(ASP MVC 4)应用程序.客户端需要登录到服务器.我使用FormsAuthentication和身份验证cookie登录.登录已经在ASP MVC中正常工作.
问题是,尽管登录在服务器上成功执行并且cookie被发送回客户端,但是在后续调用服务器时不会发送cookie,即使它CookieContainer与auth cookie集重用.
这是代码的简化版本:
客户
public async Task<UserProfile> Login(string userName, string password, bool rememberMe)
{
using (var handler = new HttpClientHandler() { CookieContainer = this.cookieContainer })
using (var httpClient = new HttpClient(handler))
{
httpClient.BaseAddress = new Uri("http://localhost:50000/");
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var result = await httpClient.PostAsJsonAsync("api/auth/login", new
{
username = userName,
password = password,
rememberMe = rememberMe
});
result.EnsureSuccessStatusCode();
var userProfile = await result.Content.ReadAsAsync<UserProfile>();
if (userProfile == null)
throw new UnauthorizedAccessException();
return …Run Code Online (Sandbox Code Playgroud) c# ×3
asp.net ×2
powershell ×2
teamcity ×2
.net ×1
.net-4.0 ×1
arm ×1
async-await ×1
asynchronous ×1
build-server ×1
can-bus ×1
canutils ×1
cookies ×1
cortex-m3 ×1
debugging ×1
keil ×1
msbuild ×1
servicehost ×1
silverlight ×1
socketcan ×1
utf-8 ×1
wcf ×1