Расширение сборки VS 2015 на сервере сборки без установленного VS?

Можно ли построить проект расширения Visual Studio 2015 на сервере сборки (агент TeamCity) без установленной Visual Studio? Какой SDK нам нужно установить?

На данный момент мы получаем следующее сообщение об ошибке:

ошибка MSB4019: импортированный проект «C: \ Program Files (x86) \ MSBuild \ Microsoft \ Portable \ v4.6 \ Microsoft.Portable.CSharp.targets» не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске.

Так что определенно не хватает какого-то SDK.


person D.R.    schedule 16.03.2016    source источник
comment
@downvoter: поясните, почему, я рад обновить свой вопрос.   -  person D.R.    schedule 16.03.2016


Ответы (4)


Microsoft.VSSDK.BuildTools

Содержит цели и инструменты, позволяющие создавать управляемые проекты VSIX без установленного MSI VSSDK. Только для VS 2015 и новее

Дополнительные пакеты, которые могут быть интересны: https://www.nuget.org/profiles/VisualStudioExtensibility

person weir    schedule 17.03.2016
comment
Звучит идеально, однако пакет NuGet кажется устаревшим: Unable to resolve dependencies. 'Microsoft.CodeAnalysis.Analyzers 1.1.0' is not compatible with 'Microsoft.CodeAnalysis.Common 1.0.0 constraint. - person D.R.; 17.03.2016
comment
Возможности: 1) Попробуйте добавить пакет Microsoft.CodeAnalysis.Common 1.1.1 . 2) Отслеживайте или участвуйте в обсуждении этой похожей проблемы в Roslyn GitHub. репозиторий. 3) Обратитесь за помощью в Microsoft в расширенной комнате Gitter. - person weir; 17.03.2016
comment
Я пробовал это аналогично тому, как я обрабатываю веб-приложения, и он был создан без ошибок, но на самом деле ничего не сделал. - person Christopher Painter; 08.08.2017
comment
@ D.R. - Обновление: Microsoft, похоже, решила эту проблему зависимости: github.com/dotnet/roslyn/pull/ 16056 - person weir; 30.08.2017
comment
Спасибо за информацию - хотя, похоже, она еще не слита. - person D.R.; 30.08.2017

Использование ответа @weir почти сработало - проект был успешно построен, но в конце не удалось создать контейнер VSIX. По какой-то причине пакет Nuget не добавил необходимый импорт в .csproj для ввода VsSDK.targets, поэтому цели VSIX отсутствовали и никогда не выполнялись.

Вот шаги, которые сработали для меня:

  1. Отредактируйте файл .csproj проекта VSIX и удалите Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />. Это не удастся на сервере сборки, где VSSDK не существует в VSToolsPath.
  2. В IDE VS2015 откройте диспетчер пакетов Nuget для проекта и установите Microsoft.VSSDK.BuildTools (я использовал v14.3.25407)
  3. Вернувшись в файл .csproj, найдите импорт, добавленный пакетом Nuget, например <Import Project="..\packages\Microsoft.VSSDK.BuildTools.14.3.25407\build\Microsoft.VSSDK.BuildTools.targets" .../> и добавьте еще один ниже для файла VsSDK.targets (внутри каталога инструментов), <Import Project="..\packages\Microsoft.VSSDK.BuildTools.14.3.25407\tools\vssdk\Microsoft.VsSDK.targets" .../>
person ben    schedule 12.05.2017
comment
У меня это сработало - все мои локальные сборки и сборки appVeyor работали нормально, но не мои сборки Travis. Итак, я выполнил шаг 1, пропустил шаг 2, поскольку у меня уже был пакет nuget (v15.1.192), затем выполнил шаг 3 (я добавил <Import Project="..\packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\vssdk\Microsoft.VsSDK.targets" Condition="Exists('..\packages\Microsoft.VSSDK.BuildTools.15.1.192\tools\vssdk\Microsoft.VsSDK.targets')" />), и сборка Travis прошла успешно. Рабочий пример - person Greg Trevellick; 19.08.2018

Похоже, вам необходимо установить Portable Library Tools на агент сборки. Вы можете загрузить их из галереи VS и установить без VS в агенте сборки, используя следующий параметр /buildmachine.

person D.R.    schedule 18.04.2016
comment
У меня была такая же ошибка. Установлены Portable Library Tools. Эта ошибка исчезла. Но по ссылке эта Portable Library for VS10. Работаю с VS15. Итак, на сервере сборки у меня есть ошибка. Импортированный проект C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ SSDT \ Microsoft.Data.Tools.Schema.SqlTasks.targets не найден. Где я могу найти инструменты переносимой библиотеки для VS15? - person RuF; 01.11.2016

Загрузите Microsoft Build Tools 2015.

person unickq    schedule 16.03.2016
comment
К сожалению, он не содержит SDK расширения VS. - person D.R.; 16.03.2016