请帮我解决最近出现的问题。
当在构建的机器上构建发布项目时(使用msbuild),代码中的所有字符串文字都使用\ x00NN进行转义,其中nn是两个数字。问题是如果这些值以表格形式显示(winforms),它们会显示为已损坏的编码(如www中的破解代码页)
在源代码中看起来像
str = " Без ПДВ"
但反射器显示
str = " \x00c1\x00e5\x00e7 \x00cf\x00c4\x00c2";
这在表单中显示为带有损坏编码的字符串,如
â。÷。 IAA
是什么原因导致msbuild将非ascii字符串文字转换为转义符号?开发人员机器上的开发版本没有这样的问题。
检查区域设置是否为运行ms-build的用户,并且已从德语更改为乌克兰语,非unicode程序语言也是如此。重启后无效。
MsBuild在同一台机器上工作了一年没有这样的问题,但是最新的构建在代码中包含了字符串文字
命令行看起来像
MSBuild {LocalPath}{Solution} /property:DefineConstants="{Defines}{DefinesExtra}" /t:{Target} /property:Configuration={Configuration} {Platform} /clp:NoItemAndPropertyList
目标是构建(或重建它没关系)配置是发布,平台是x86
PS我知道在代码中存储本地化字符串是不好的(但是发生了糟糕的事情)。