Ошибка сборки при использовании 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>