我已经研究了几天这个问题没有答案。有对错误代码的引用,但我相信 BC2000 用于所有“编译器初始化”错误,无论潜在问题如何。
我有一个 VS 解决方案,可以在我们的开发环境中使用 MSBuild 12.0 编译得很好。但是,当尝试在我们的 Win 2008 R2 SP1 构建机器中使用 MSBuild 12.0 进行编译时,我们会遇到致命错误。
为 MSBuild 执行的命令是:
"C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe" "path\to\solution.sln" /target:Clean;Build /verbosity:normal /toolsversion:12.0 /nologo /property:WarningLevel="2" /property:Configuration="Release"
收到的错误是:
vbc: Error: Fatal error BC2000 : compiler initialization failed unexpectedly: Project already has a reference to assembly Microsoft.VisualBasic. A second reference to 'path\to\dotnet4\System.dll' cannot be added. (Fatal error BC2000)
这类似于这个问题。但是,我们没有使用它们的设置,因为我们没有使用 Mono。
有问题的项目只有一个对 Microsoft.VisualBasic 程序集的引用。此外,正在执行的 vbc 命令在 dev 和 build 机器中是相似的,它们只引用一次提到的程序集。
开发和构建机器相同:
- .NET 框架版本:4.6.1
- 正在使用的 MSBuild:12.0
不同的:
- 开发机器有 VS 2010 或 VS 2013。
- 构建机器没有安装VS。
- 构建机器还安装了 MS Visual C++ Build Tools 2015。
有没有人遇到过这个问题?关于如何解决它的任何想法?谢谢。