2

我更新了构建工具中的程序集参考,以使用 microsoft.build、microsoft.build.engine 和 microsoft.build.framework 的最新版本 (v12)。但是,在使用 BuildManager 编译项目时(我使用 Rebuild 选项进行编译),它在目标处失败:CleanWebsitesPackageCore,错误为 MSB4127:“无法从程序集“C:\Program Files (x86) 实例化“CheckPathAttributes”任务)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll"。请确认任务程序集是使用与安装的相同版本的 Microsoft.Build.Framework 程序集构建的您的计算机并且您的主机应用程序没有缺少 Microsoft.Build.Framework 的绑定重定向。无法转换类型为“Microsoft.Web.Publishing.Tasks”的对象。

需要注意的一点是,如果我尝试通过从命令提示符调用 MSBuild.exe 直接编译项目,它编译得很好。在查看日志时,我可以看到目标“CleanWebsitesPackageCore”在“干净”部分从未被调用。想知道为什么在使用 buildmanager 时调用目标而不是在命令提示符下直接调用 msbuild.exe 时调用目标?

任何人都知道为什么会这样。提前致谢。

4

1 回答 1

4

参考解决方案:http: //blogs.microsoft.co.il/idof/2008/11/24/what-does-entity-framework-has-to-do-with-msbuild/

App.config 添加这个dependentAssembly

  <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"/>
    </dependentAssembly>
    </assemblyBinding>
  </runtime>
于 2016-08-25T13:43:58.423 回答