2015-01-27 28 views
2

我試圖使用Microsoft.Build.Evaluation.Project在我的項目中運行MSBuild。構建環境CodeAnalysis任務無法實例化

我得到這個錯誤,我想不通爲什麼,或者從哪裏開始診斷是:

C:\ Program Files文件 (86)\的MSBuild \微軟\ VisualStudio的\ V12 .0 \ CodeAnalysis \ Microsoft.CodeAnalysis.targets: 錯誤MSB4127:「代碼分析」任務不能從 組件「C:\ Program Files (x86)\ MSBuild \ Microsoft \ 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.BuildMicrosoft.Build.Framework
  • 我已經在殼程中成功使用MSBuild.exe在同一解決方案上
  • This question似乎來解決這個問題,但它使用的是命令行。

我不知道如何「驗證任務程序集」或添加「綁定重定向Microsoft.Build.Framework」。有人能指引我朝着正確的方向嗎?

回答

4

這裏的答案存在於混淆的參考文獻中。默認的Microsoft.Build引用是v4.0

原來引用最新版本(至少在VS 2013社區)我不得不瀏覽到程序集C:\Program Files (x86)\MSBuild\12.0\bin並手動添加引用。成功!

感謝BuildManager to use another version of MSBuild指出此解決方案。

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

相關問題