Задача TransformXml не может быть загружена из Microsoft.Web.Publishing.Tasks.dll

Кто-нибудь видел эту ошибку и знает, как ее исправить?

Задача "TransformXml" не может быть загружена из сборки C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.Tasks.dll.

Не удалось загрузить файл или сборку:///C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.Tasks.dll 'или один из его зависимостей. Система не может найти указанный файл.

Убедитесь, что объявление верное, что сборка и все ее зависимости доступны, и что задача содержит открытый класс, который реализует Microsoft.Build.Framework.ITask.

Я читал в другом месте, что проблема в том, что у вас нет SQL Server. Но у меня есть SQL Express 2012 x64, установленный с пакетом обновления 1 (SP1). Я также запускаю VS 2013 Professional.

Я пробовал это точно такое же решение в VS 2012 Express без проблем.

Ответ 1

Чтобы моя работа работала, я просто скопировал мою папку v10.0 и переименовал ее в v11.0, и с этого момента все будет хорошо работать. Это быстрое решение.

Поскольку это, вероятно, не лучшее решение, и хотя оно работает, я собирался попробовать установить Microsoft Windows SDK для Windows 7 и .NET Framework 4 Windows SDK для Windows 7 и .NET Framework 4, но он долго загружается.

Ответ 2

Ответы Dai Bok и emalamisura отлично работают, пока вы используете Visual Studio 2012. Для VS 2013 это не удается. Чтобы сделать эту работу со всеми версиями Visual Studio, вы должны:

  • Откройте файл проекта (.csproj) проекта, не загружающего
  • Искать <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
  • Измените его на <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
  • Обновить проект

Это установит правильную версию Visual Studio динамически и правильно.

Ответ 3

Я несколько дней борюсь с этой проблемой на нашем сервере сборки, поэтому решил, что я задокументирую решение, к которому я пришел. Во-первых, на моем сервере сборки установлены расширения веб-публикации. Я могу использовать задачу TransformXml для моего сердечного контента внутри проекта веб-приложения.

Чтобы использовать его вне проекта веб-приложения, я попытался добавить элемент UseTask в свой проект и указать его в нужном месте, используя свойства ms build (как продемонстрировал Бенджамин). Однако их не было на моем сервере сборки (те, у кого есть легкий доступ к файловой системе своего сервера сборки, возможно, пропустите это и просто установите соответствующий пакет в Visual Studio). Я даже зашел так далеко, что мне не нравятся жесткие коды визуальных студийных версий, но он всегда меня удалял.

Я, наконец, сдался, вытащил DLL с моего локального ПК:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.XmlTransform.dll

Я загрузил их в исходный элемент управления и добавил эту папку в мое рабочее пространство сборки (Edit Build Definition → Source Settings → Source Control Folder). Оттуда мне даже не нужно ссылаться на папку - вот что выглядит моя UseTask:

  <UsingTask TaskName="TransformXml" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll" />

Теперь я могу использовать задачу TransformXml для моего сердечного контента из любого проекта.

Ответ 4

Поскольку в моей папке VisualStudio есть только v12.0, v14.0 и v15.0, я редактирую файл проекта и изменяю ссылочный путь с v10.0 до v14.0. Затем проект строится успешно.

До:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

После:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

Ответ 5

Правильный ответ на этот вопрос - выгрузить проект, а затем отредактировать файл csproj, найти запись, в которой они ссылаются на путь 10.0, и изменить ее вместо 11.0.

Ответ 6

Чтобы устранить проблему,

  • Найдите установщик Visual Studio на вашем компьютере.
  • Нажмите или коснитесь, чтобы запустить программу установки, а затем выберите "Изменить".
  • На экране "Индивидуальные компоненты" выберите инструменты Asp.net и веб-разработки, затем выберите "Изменить/установить".

Это решило проблему, поскольку она создает DLL по указанному пути.

Ответ 7

Вам нужно две вещи, чтобы заставить ее работать:

1) Установите инструменты сборки Visual Studio (вам не нужна вся Visual Studio, только VS Build Tools) с выбранными инструментами сборки веб-разработки на вашем сервере сборки https://www.visualstudio.com/pl/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15

2) Убедитесь, что путь к Microsoft.Web.Publishing.Tasks.dll верен.

  <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(MSBuildToolsVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />