В настоящее время я тестирую 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.