Отсутствует 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.