Я пытаюсь обновить наш сервер сборки (jenkins) с Visual Studio 2015 до 2017 года. Мы строим через MS-Build. Я загрузил и установил инструменты MS-Buld, как описано в этом ответе . Если я компилирую свои проекты, я получаю ошибку, которая Microsoft.WebApplication.targets
не была найдена.
Подробная ошибка:
error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"
Я произвел находку в каталоге MS-Build:
PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11.01.2012 00:23 19654 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 06.07.2015 21:55 20118 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Как видно, файл существует для старых версий компилятора, но для v15.0 он отсутствует.
Я также установил Visual Studio 2017 на сборочный сервер. Проект удастся построить, если я скомпилирую с Visual Studio 2017.
Есть подсказки, как решить эту проблему? Одно из возможных решений - создать символическую ссылку от C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
точки к старым файлам v14.0 (расположенным ниже C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
).
Спасибо
источник
Ответы:
Похоже , вам не хватает нагрузки для «Веб - инструменты сборки развитие»:
Microsoft.VisualStudio.Workload.WebBuildTools
.Вы можете установить его, загрузив установщик инструментов сборки отсюда (VS2017) или здесь (VS2019), затем запустив
или открыв
vs_buildtools.exe
и выбрав компонент «Инструменты сборки веб-разработки» в графическом интерфейсе:источник
Build Tools for Visual Studio 2017
сWeb development build tasks
помощью предоставленной ссылки, но он все еще не создаетC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
папку .. я тоже не вижуvs_buildtools.exe
.. я искал весь `c:`$(MSBuildExtensionsPath)
было изменено наC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild
stackoverflow.com/questions/47077150/… этоПринятый выше ответ технически правильный, просто неполный, немного сбивающий с толку, по крайней мере, для меня, и для работы Visual Build Professional потребовался еще один дополнительный шаг.
vs_buildtools.exe технически не существует. Мне пришлось создать вопрос спрашивать , где этот файл был. Не было очевидным, что vs_buildtools.exe - это vs_buildtools _ *******. Exe и является самой программой установки. Кроме того, упомянутое выше «-add ***» - это просто сокращение. Можно перейти в графический интерфейс и проверить обе задачи рабочего процесса. То же самое. У меня был файл vs_buildtools, но он мне не понадобился.
VSB Pro все еще не построил мой проект. Я получил ту же ошибку, что и выше. Секрет соус был просто скопировать
WebApplications
папкуC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0
дляC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
. Затем я перестроил проект, и все было в порядке. Я разместил файл WebApplication.targets в ожидаемом месте.Почему Microsoft не смогла этого сделать, мне непонятно. Также почему отдельная установка. VS17 устанавливает огромное количество вещей. Инструменты сборки, как всегда, подразумеваются. Без разницы.
Я отправляю этот ответ, надеюсь, он поможет другим. Я попал в ловушку и потерял довольно много времени из-за того, что мой проект не строился. Я надеюсь, что этот ответ немного проясняет ситуацию.
источник
У меня возникла аналогичная проблема после обновления с Visual Studio 2015 до 2017. Когда я пытаюсь загрузить проект веб-приложения, мне выводится сообщение об ошибке:
Решение этой ошибки я нашел здесь .
В моем случае файл .csproj содержал следующие строки:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath> </PropertyGroup>
После замены
v14.0
наv$(VisualStudioVersion)
вVSToolPath
теге, проект может быть загружен.Я также заменил
v14.0
наv10.0
вVisualStudioVersion
теге, как решение в приведенной выше ссылке показывает. Но для меня это также сработало, оставив его на 14.0.Вот как эти строки должны выглядеть в итоге:
<PropertyGroup> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup>
Если у вас вообще нет этих строк в вашем .csproj, вам нужно добавить их вручную прямо ПЕРЕД этой строкой:
<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />
В моем случае (немного другое сообщение об ошибке, но та же проблема) это была эта строка:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Похоже, что проекты, созданные в версиях Visual Studio с 2011 года, содержат строки с
VSToolsPath
переопределением, а старые файлы - нет. Visual Studio никогда не добавляла их автоматически при обновлении до более новой версии VS, поэтому вам следует добавить их, если их там нет.Источник этой информации: https://developercommunity.visualstudio.com/content/problem/27735/project-fails-to-load-with-error-regarding-microso.html?childToView=123664#comment-123664 (нажмите Показать больше комментариев, чтобы увидеть полную ветку обсуждения - к сожалению, я не могу напрямую ссылаться на комментарии в этом разделе "еще".)
источник
Инструменты сборки 2017 легко установить с
WebBuildTools
уже включенной опцией, используя шоколад . После его установки введите в командной строке администратора следующее:Для VS 2019 это похоже:
источник
cinst visualstudio2017buildtools -params '--add Microsoft.VisualStudio.Workload.WebBuildTools' -y ; cinst microsoft-build-tools -y
Скопировать
WebApplications
папку изC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0
к
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
Или в вашем сценарии сборки добавьте следующую строку перед компиляцией
Copy-Item "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications" -Recurse -Force
Обязательно запускайте его с повышенными разрешениями
источник
как создать VS 2017 pro, приложение asp.net MVC и построить его с помощью Jenkins?
используйте vs 2017 pro как на машине разработчика, так и на сервере сборки
Убедитесь, что для VisualStudio установлено значение 15.
Import Project = "$ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets" Condition = "false"
установите для инструмента msbuild
значение C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exe в глобальном диспетчере конфигурации jenkins
С помощью jenkins выполните пакет команд Windows:
retore nugets: "C: \ Program Files (x86) \ Jenkins \ tools \ nuget \ NuGet.exe" restore "C: \ Program Files (x86) \ Jenkins \ workspace \ theapp_build \ theapp. sln "
С помощью jenkins выполните пакет команд Windows:
Файл сборки MSBuild: theapp.sln
Аргументы командной строки: / nologo / t: restore / t: rebuild / p: Configuration = "Debug" /p:VisualStudioVersion=15.0
источник
Для VS 2019 я исправил это, скопировав:
к
источник
Я просто использую установщик Visual Studio для обновления Visual Studio Community 2017 , тогда проблема решена.
источник