Попытка построить мой проект на сервере сборки приводит к следующей ошибке:
Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Я решил эту проблему несколько месяцев назад, установив Visual Studio 2010 на Build Server. Но теперь я настраиваю новый сервер с нуля, и я хочу знать, есть ли лучшее решение для решения этой проблемы.
<Import Project="..\Packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
пути$(VSToolsPath)
на:<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" />
Ответы:
Чтобы ответить на заголовок вопроса (но не на вопрос о выводе, который вы получаете):
Копирование следующей папки с вашего компьютера разработчика на ваш сервер сборки исправляет это, если это просто веб-приложения
Удалите x86 в соответствии с тем, как ломается ваша сборка. Если у вас есть другие типы проектов, вам, вероятно, потребуется скопировать всю папку msbuild.
источник
Создание и публикация WAP не поддерживается, если VS не установлен. С учетом сказанного, если вы действительно не хотите устанавливать VS, вам нужно будет скопировать все файлы в
%ProgramFiles32%\MSBuild\Microsoft\
.Вам также необходимо установить Web Deploy Tool . Я думаю, что это так.
источник
Прямо сейчас, в 2017 году, вы можете установить редиректы WebApplication с помощью MSBuildTools. Просто перейдите на эту страницу , чтобы загрузить MSBuild 2017 Tools, и во время установки нажмите,
Web development build tools
чтобы также установить эти цели:Это приведет к установке отсутствующих библиотек
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
по умолчаниюисточник
choco install visualstudio2017-workload-webbuildtools
.Microsoft.VisualStudio.Workload.WebBuildTools
может быть установлен с помощью командной строки с помощью вызоваvs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools
. Добавить--passive
не нужно вмешательство пользователя.UPD: с VS2017 в Build Tools есть рабочая нагрузка, которая полностью устраняет эту проблему. Смотрите ответ @SOReader .
Если вы предпочитаете не изменять что-либо на сервере сборки и все же хотите, чтобы проект создавался прямо из системы контроля версий, было бы неплохо установить требуемые двоичные файлы под управление исходными кодами. Вам нужно изменить раздел импорта в вашем файле проекта, чтобы он выглядел так:
Первая строка - это фактический импорт из нового местоположения относительно каталога решения. Второй вариант - это отключенная версия (
Condition="false"
) исходной строки, которая позволяет Visual Studio по-прежнему рассматривать ваш проект как допустимый проект веб-приложения (это хитрость, которую VS 2010 SP1 делает сам).Не забудьте скопировать
C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplications
вBuildTargets
папку под вашим контролем источника.источник
Вы также можете использовать пакет NuGet MSBuild.Microsoft.VisualStudio.Web.targets , ссылаясь на них в своих проектах Visual Studio, а затем изменить свои ссылки, как рекомендует Андрей К.
источник
Основываясь на этом посте, вы можете просто загрузить распространяемый пакет оболочки Microsoft Visual Studio 2010 (интегрированный), и цели будут установлены.
Это избавляет от необходимости устанавливать Visual Studio на сервере сборки.
Я только что попробовал это сейчас, и могу убедиться, что это работает:
Перед:
После установки:
[Строит правильно]
Очевидно, что это гораздо лучшее решение, чем установка Visual Studio на сервере сборки.
источник
Последний Windows SDK, как упоминалось выше, в дополнение к «Распространяемому пакету оболочки Microsoft Visual Studio 2010» для Microsoft.WebApplication.targets и «Microsoft Visual Studio Team System 2008 Database Edition GDR R2» для Microsoft.Data.Schema .SqlTasks.targets должен облегчить необходимость установки Visual Studio 2010. Однако установка VS 2010 может быть на самом деле менее общей для загрузки и меньше работы в конце.
источник
Добавить зависимость через NuGet и установить параметр сборки
Цель: никаких изменений / установок, необходимых для агентов сборки
Я использовал гибридный подход к подходу NuGet Ллойда , который был основан на решении фиксации бинарных зависимостей Андриком.
Причина в том, что я хочу иметь возможность добавлять новые агенты сборки без предварительной настройки их с такими элементами, как этот.
[solution]\packages\MSBuild.Microsoft.VisualStudio.Web.targets.nn.n.n.n\tools\VSToolsPath\
В версии 7 я сделал следующее. Это, возможно, не было необходимо, и на основе комментариев определенно не нужно сейчас. Пожалуйста, смотрите комментарии ниже.
env.VSToolsPath
и установите его в папку VSToolsPath; я использовал..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath
источник
<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.12.0.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" />
При сборке на сервере build / CI
Microsoft.WebApplication.targets
вообще отключите импорт , указав/p:VSToolsPath=''
. Это, по сути, сделает условие следующей строки ложным:Вот как это делается в TeamCity:
источник
Если вы перенастроили Visual Studio 2012 на 2013, откройте файл проекта * .csproj с помощью edior.
и проверьте элемент ToolsVersion тега «Проект».
Измените его значение с 4.0 на 12.0
От
к
Или, если вы строите с помощью msbuild, просто укажите свойство VisualStudioVersion
Источник решения
источник
msbuild /p:Platform=x86 /p:VisualStudioVersion=12.0
Кажется, что новая версия msbuild не поставляется с Microsoft.WebApplication.targets. Для исправления необходимо обновить файл csproj следующим образом:
1) Отредактируйте веб-приложение csproj (щелкните правой кнопкой мыши). Найдите раздел в csproj внизу, посвященный инструментам сборки. Это должно выглядеть так.
2) Вам нужно добавить одну строку VSToolsPath ниже тега VisualStudioVersion, чтобы она выглядела так
Ссылочная ссылка: https://alastaircrabtree.com/cannot-open-vs-2015-web-project-in-vs-2017/
источник
Это все, что вам нужно. Всего 103 МБ. Не устанавливайте все
источник
Я нашел это на MS Connect :
Итак, это единственный вариант, который у меня есть на данный момент.
источник
Мое решение представляет собой смесь нескольких ответов здесь.
Я проверил сервер сборки, и Windows7 / NET4.0 SDK уже был установлен, поэтому я нашел путь:
Тем не менее, на этой строке:
$ (MSBuildExtensionsPath) раскрывается в C: \ Program Files \ MSBuild, у которого нет пути.
Поэтому я создал символическую ссылку с помощью этой команды:
Таким образом, $ (MSBuildExtensionsPath) расширяется до допустимого пути, и никаких изменений в самом приложении не требуется, только на сервере сборки (возможно, можно создать символическую ссылку при каждой сборке, чтобы убедиться, что этот шаг не потерян и «задокументирован» «).
источник
Я исправил это, добавив
/p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"
в
Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments
источник
Я попробовал кучу решений, но в конце концов этот ответ работал для меня: https://stackoverflow.com/a/19826448/431522
В основном это вызывает вызов MSBuild из каталога MSBuild, а не из каталога Visual Studio.
Я также добавил каталог MSBuild в свой путь, чтобы скрипты было легче кодировать.
источник
Любой, кто приезжает сюда для Visual Studio 2017. У меня была похожая проблема, и я не смог скомпилировать проект после обновления до 15.6.1. Я должен был установить инструменты MSBulild, но все же ошибка была там.
Я смог решить проблему, скопировав
v14.0
папку изC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
той же папки, чтоv15.0
и все ошибки. Теперь моя структура папок выглядит следующим образом: обе папки содержат одинаковое содержимое.источник
Если вы используете MSBuild, как в случае с сервером сборки, у меня сработало следующее:
Измените следующее:
чтобы:
Моя команда Msbuild:
*"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" solution.sln /p:Configuration=Debug /p:Platform="Any CPU"*
Надеюсь, это кому-нибудь поможет.
источник
В случае, если вы пытаетесь развернуть проект с использованием VSTS, проблема может быть связана с проверкой опции «Hosted Windows Container» вместо «Hosted VS2017» (или 18 и т. Д.):
источник
C:> msbuild "C: \\ DotnetCi.sln" / p: конфигурация = выпуск / p: UseWPP_CopyWebApplication = true / p: PipelineDependsOnBuild = false
источник
У меня была эта проблема при создании проекта SQL Server на конвейере CI / CD. На самом деле, у меня это тоже было локально, и мне не удалось его решить.
Для меня сработало использование MSBuild SDK , способного создавать пакет приложения уровня данных SQL Server (
.dacpac
) из набора сценариев SQL, что подразумевает создание нового проекта. Но я хотел сохранить проект SQL Server, чтобы связать его с действующей базой данных через обозреватель объектов SQL Server в Visual Studio. Я предпринял следующие шаги, чтобы все заработало:.sql
сценариями базы данных.Установите содержимое
.csproj
следующим образом:Я выбрал Sql140 в качестве версии SQL Server, потому что я использую SQL Server 2019. Проверьте этот ответ, чтобы узнать соответствие используемой версии.
Проигнорируйте проект SQL Server при сборке, чтобы он не ломался локально (он строится на Visual Studio, но не работает на коде VS).
Теперь нам нужно убедиться, что
.sql
файлы находятся внутри проекта SDK, когда он собирается . Я достиг этого с помощью простой подпрограммы powershell на конвейере CI / CD, которая копирует файлы из проекта SQL Server в проект SDK:PS: файлы должны быть физически в проекте SDK, либо в корневом каталоге, либо в какой-либо папке, поэтому ссылки на
.sdk
файлы в проекте SQL Server не будут работать. Теоретически, должно быть возможно скопировать эти файлы с условием предварительной сборки, но по какой-то неясной причине это не сработало для меня. Я также попытался поместить.sql
файлы в проект SDK и связать их с проектом SQL Server, но это легко разорвало бы связь с обозревателем объектов SQL Server, поэтому я решил отказаться и от этого.источник