Отсутствует include для проекта .NetStandard при построении на сервере сборки
В настоящее время я тестирую VS2017 на работе, из-за заинтересованности в переносе наших серверных систем на .Net-ядро.
Я переключил несколько проектов небольших инструментов, предназначенных для таргетинга .NetStandard 1.2 (воссоздание и перемещение файлов), и все происходит локально.
Однако, когда я запрашиваю сборку на нашем сервере TeamCity 10.0.5, сборка выходит из строя со следующим сообщением (имя проекта изменено):
E:\TeamCity\buildAgent1\work\467cb2a824afdbda\Source\{PROJECT FOLDER}\{PROJECT}.csproj error MSB4019: импортированный проект "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Sdks\Microsoft.NET.Sdk\Sdk\Sdk.props" не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске.
Папка Microsoft.NET.Sdk действительно существует на моей машине, но не на сервере сборки.
Я установил Build Tools для Visual Studio 2017 и установил SDK NetNet 1.1, а в конфигурации сборки используется бегун Visual Studio (sln) с использованием VS2017.
Какой набор инструментов/установщика мне не хватает?
UPDATE:
Я экспериментировал с установщиком Full Visual Studio 2017 (сообщество), а пакет таргетинга на платформу .NET Framework 4.5 добавил эту папку.
Нечетный, так как на сервере уже установлен 4.5 пакет Multi-Targeting.
После установки агента Build для использования полной установки сообщества VS2017 появилось множество других проблем, таких как пространство имен System, которое не найдено в рассматриваемых проектах.
Добавление этапа сборки восстановления в dotnet устраняет эту проблему, но затем другие пространства имен, где отсутствует (отсутствует установка) и т.д.
Построение полного рамочного решения с проектами .NETStandard, по-видимому, основано на .NET Core для построения, чего я не понимаю, поскольку я не нацелен на .NET Core.
Ответы
Ответ 1
Я решил эту проблему, установив .NET Core SDK и добавив MSBuildSDKsPath. Я также скопировал различные SDK с моей локальной установки визуальной студии на сервер сборки. На данный момент вам нужно установить полную установку Visual Studio на сервер, чтобы заставить сборку работать без этих остановок.
-
установите .NET Core SKD отсюда.
-
Добавьте MSBuildSDKsPath к переменным среды в cmd.
установить MSBuildSDKsPath = C:\Program Files\dotnet\sdk\1.0.1\Sdks
-
С вашего локального предприятия или профессиональной установки визуальной студии скопируйте необходимые файлы sdk на ваш сервер сборки ms. Скопируйте содержимое этой папки в локальную Visual Studio:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks
В эту папку на сервере сборки:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Sdks
-
Следуйте билет для этой ошибки в github, чтобы получить уведомление, когда эта проблема с инструментами сборки исправлена.
Ответ 2
попробуйте установить .NET Core SDK отсюда:
. Загрузка NET Core
и, при необходимости:
set MSBuildSDKsPath=C:\Program Files\dotnet\sdk\1.0.1\Sdks
Ответ 3
Если вы используете решение с проектами SDK, вам нужно только dotnet restore && dotnet build
вместо nuget restore & msbuild
.
Но если это смешанное решение (старые проекты и проекты SDK), вам придется подождать, пока не будет выпущен VS15.3.