我正在尝试使用Microsoft.Build.Evaluation.Project
在我的项目中运行MSBuild。
我收到此错误,我无法弄清楚为什么或从哪里开始诊断它:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ CodeAnalysis \ Microsoft.CodeAnalysis.targets:错误MSB4127:“CodeAnalysis”任务无法从程序集“C:\ Program Files”(x86)中实现)\的MSBuild \微软\ VisualStudio的\ V12.0 \ CodeAnalysis \。\ FxCopTask.dll”。请验证是否使用与计算机上安装的Microsoft.Build.Framework程序集相同的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的绑定重定向”。有人能指出我正确的方向吗?
这里的答案在于混淆参考。默认的Microsoft.Build
引用是v4.0
。
原来参考最新版本(至少在VS 2013社区中)我必须浏览到C:\Program Files (x86)\MSBuild\12.0\bin
中的程序集并手动添加引用。成功!
“添加绑定重定向”将以下内容添加到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
。