Ошибка сборки при использовании buildManager с последней версией microsoft.build.dll,v12.0.0.0

Я обновил ссылку на сборку в своем инструменте сборки, чтобы использовать последние версии (v12) microsoft.build,microsoft.build.engine и microsoft.build.framework. Но во время компиляции проекта с использованием BuildManager(я использую опцию Rebuild для компиляции) он завершается с ошибкой в ​​Target: CleanWebsitesPackageCore с ошибкой MSB4127: "Не удалось создать задачу"CheckPathAttributes"из сборки"C:\Program Files (x86)) \MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll". Убедитесь, что сборка задачи была построена с использованием той же версии сборки Microsoft.Build.Framework, которая установлена ​​на на вашем компьютере и в том, что ваше хост-приложение не пропускает перенаправление привязки для Microsoft.Build.Framework. Невозможно привести объект типа "Microsoft.Web.Publishing.Tasks.CheckPathAttributes" к типу "Microsoft.Build.Framework.ITask" ".

Интересно отметить, что, если я попытаюсь скомпилировать проект напрямую, вызвав MSBuild.exe из командной строки, он прекрасно скомпилируется. Просматривая журналы, я мог видеть, что целевой "CleanWebsitesPackageCore" никогда не вызывался во время "чистой" части. Хотите знать, почему цель вызывается при использовании buildmanager, а не при вызове msbuild.exe непосредственно из командной строки?

У любого есть идея, почему это происходит так. Заранее спасибо.

1 ответ

Решение

Справочное решение: http://blogs.microsoft.co.il/idof/2008/11/24/what-does-entity-framework-has-to-do-with-msbuild/

App.config добавить эту зависимую сборку

  <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>
Другие вопросы по тегам