我正在尝试使用Microsoft.Build.Evaluation.Project
在我的项目中运行MSBuild。
我收到了这个错误,我无法弄清楚原因,或者从哪里开始诊断它:
C:\ Program Files (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \ CodeAnalysis \ Microsoft.CodeAnalysis.targets: 错误MSB4127:无法实现“CodeAnalysis”任务 程序集“C:\ Program Files (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \ CodeAnalysis \。\ FxCopTask.dll”。 请验证任务程序集是否已使用相同版本构建 Microsoft.Build.Framework程序集作为您计算机上安装的程序集 您的主机应用程序没有错过绑定重定向 Microsoft.Build.Framework。无法转换类型的对象 输入'Microsoft.Build.Tasks.CodeAnalysis' 'Microsoft.Build.Framework.ITask'。
ToolsVersion="12.0"
Microsoft.CodeAnalysis.targets
并确保FxCopTask.dll
正常工作Microsoft.Build
和Microsoft.Build.Framework
MSBuild.exe
我不确定如何“验证任务程序集”或添加“Microsoft.Build.Framework的绑定重定向”。有人能指出我正确的方向吗?
答案 0 :(得分:4)
这里的答案在于混淆参考。默认Microsoft.Build
引用为v4.0
。
原来引用最新版本(至少在VS 2013社区中)我必须浏览C:\Program Files (x86)\MSBuild\12.0\bin
中的程序集并手动添加引用。成功了!
感谢BuildManager to use another version of MSBuild指出了这个解决方案。
答案 1 :(得分:1)
'添加绑定重定向'正在将以下内容添加到您的app.config
文件中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="12.0.0.0"/> <!--verify version!-->
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
对我来说,这解决了这个问题。我的错误始于The "csc" task could not be instantiated
。