【发布时间】:2019-04-29 19:56:29
【问题描述】:
当我尝试编译任何 Windows 窗体应用程序项目时,我收到一条错误消息:
\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2114,5):错误 MSB3095:参数无效。不支持文化。
\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2114,5):错误 MSB3095:参数名称:名称
\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2114,5):错误 MSB3095:x86 是无效的区域性标识符。
当我偶然发现此错误消息时,我正在使用 VS 2017。上网一查,发现自己的问题从来没有被别人问过。所以我卸载了与 Visual Studio 相关的所有内容并安装了 VS 2019。
在解决这个问题的所有努力都失败后,我检查了我的应用程序引用和 MSBuild 程序集文件是否存在冲突。这也不是解决方案。现在我比计划晚了两周,但仍然没有答案。
我尝试更改平台目标和目标框架,希望看到不同但没有;什么都没有改变。
我还尝试了其他应用项目和目标。结果如下: 编译控制台应用程序不会引发错误消息。 但是,编译 Windows 窗体应用程序会在不同的项目中引发相同的错误消息。
【问题讨论】:
-
可以分享一下csproj文件吗?我建议尝试使用二进制日志(开发人员命令行中的
msbuild -bl创建msbuild.binlog文件)和MSBuild Structured Log Viewer 来调查x86是如何成为一种文化的。还要检查您的环境变量,看看它们是否设置了一些通用变量名称(Platform、Culture)。 -
这可能与 .refresh 文件有关,您可以检查 this link 是否有帮助。请转到 Tool=>Options=>Projects and Solutions=>Build and Run=>将输出详细程度更改为
Details以查看有关错误消息的更多详细信息。 -
@MartinUllrich 我确定问题出在 MSBuild 本身。我创建了一些新的 Windows 窗体应用程序项目,以查看它是否仅适用于我的主项目,但我收到了相同的错误消息。
-
@LanceLi-MSFT 我按照你说的做了,这里是构建日志文件:shrib.com/#msbuild3095error
-
问题是 MSBuild 中记录此异常的代码路径是超级通用的,因此很难判断可能出了什么问题...
标签: c# visual-studio compiler-errors msbuild