Кто-нибудь видел эту ошибку и знает, как ее исправить?
Не удалось загрузить задачу «TransformXml» из сборки C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll.
Не удалось загрузить файл или сборку «file: /// 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.
источник
Ответы:
Ответы Дай Бока и emalamisura работают нормально, пока вы используете Visual Studio 2012. Для VS 2013 это тоже не работает. Чтобы это работало со всеми версиями Visual Studio, вам необходимо:
<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 динамически и правильно.
источник
$(VisualStudioVersion)
возвращает более раннюю версию :(Чтобы мой заработал, я просто скопировал свою
v10.0
папку и переименовал ее вv11.0
, и с тех пор все, кажется, работает хорошо. На данный момент это быстрое решение.Поскольку это, вероятно, не лучшее решение, и хотя оно работает, я собирался попробовать установить Microsoft Windows SDK для Windows 7 и .NET Framework 4 Windows SDK для Windows 7 и .NET Framework 4, но это займет слишком много времени, чтобы скачать.
источник
Я боролся с этой проблемой на нашем сервере сборки в течение нескольких дней, поэтому решил, что задокументирую решение, к которому пришел. Во-первых, на моем сервере сборки установлены расширения веб-публикации . Я могу использовать задачу TransformXml, сколько душе угодно, внутри проекта веб-приложения.
Чтобы использовать его вне проекта веб-приложения, я попытался добавить элемент UsingTask в свой проект и указать его в нужном месте, используя свойства сборки ms (как продемонстрировал Бенджамин). Однако их не было на моем сервере сборки (те, у кого есть легкий доступ к файловой системе своего сервера сборки, вероятно, могут пропустить это и просто установить соответствующий пакет в Visual Studio). Я даже зашел так далеко, что написал версии для визуальной студии с жестким кодом, но это всегда вызывало эту ошибку.
Я наконец сдался, вытащил библиотеки DLL со своего локального ПК:
Я загрузил их в систему управления версиями и добавил эту папку в рабочую область моей сборки («Изменить определение сборки» -> «Настройки источника» -> «Папка управления исходным кодом»). Оттуда мне даже не нужно ссылаться на папку - вот как выглядит мой UsingTask:
Теперь я могу сколько угодно использовать задачу TransformXml из любого проекта.
источник
Чтобы исправить проблему,
Это решило проблему, поскольку создает библиотеки DLL по указанному пути.
источник
Tools → Get Tools and Features... → Individual Components: Windows 10 SDK (10.0.14393.0) and ASP.NET and web development tools
. Похоже, это сработало.Для VS2019
Я заменил
MSBuildToolsVersion
наVisualStudioVersion
.источник
Поскольку в моей папке VisualStudio есть только v12.0, v14.0 и v15.0, я редактирую файл проекта и меняю путь ссылки с v10.0 на v14.0. Тогда проект успешно строится.
Перед:
После:
источник
Правильный ответ на это - выгрузить проект, о котором идет речь, а затем отредактировать файл csproj, найти запись, в которой они ссылаются на путь 10.0, и изменить его, чтобы вместо этого указывать на 11.0.
источник
Чтобы это работало, вам нужны две вещи:
1) Установите Visual Studio Build Tools (вам не нужна вся Visual Studio, только VS Build Tools) с выбранной опцией «Инструменты сборки для веб-разработки» на вашем сервере сборки. https://www.visualstudio.com/pl/thank -you-download-visual-studio /? sku = BuildTools & rel = 15
2) Убедитесь, что путь к Microsoft.Web.Publishing.Tasks.dll правильный.
источник
Для меня он начал работать, просто добавив ссылку на пакет NuGet MSBuild.Microsoft.VisualStudio.Web.targets v14.0.0.3
Даже нет необходимости добавлять элемент UsingTask в файл проекта, как это было указано автором пакета.
А затем я смог использовать TransformXml и другие задачи, определенные в пакете, например, для преобразования app.config
источник
На всякий случай, если кто-то использует csproj в стиле SDK, вы можете добиться этого, не устанавливая Visual Studio на сервере сборки.
Сначала вы должны установить пакет nuget SlowCheetah в свой проект. После его установки вы увидите следующее в своем проекте в стиле SDK.
Затем убедитесь, что вы добавили атрибут GeneratePathProperty = "true" (см. Ниже). Это очень важно для следующей части, потому что это поможет вам определить путь восстановления пакета nuget на вашем компьютере. Джордж Дангл объясняет это в своей статье здесь .
Импортируйте цели SlowCheetah в свой проект:
Теперь вы можете использовать целевую команду (в данном случае после публикации) для применения некоторых пользовательских преобразований. Если вам нужно, вы всегда можете жестко запрограммировать имена файлов ниже вместо использования переменных в приведенном ниже примере.
Если вы раньше не использовали SlowCheetah , рекомендую попробовать . У них есть расширение Visual Studio, которое упростит предварительный просмотр файлов преобразования.
источник