3

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

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

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

Так что определенно какой-то SDK отсутствует.

+1

@downvoter: просьба уточнить, почему, я рад обновить свой вопрос. –

ответ

1

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

+0

У меня была такая же ошибка. Установленные инструменты для переносных библиотек. Эта ошибка исчезла. Но, согласно ссылке, эта портативная библиотека для VS10. Я работаю с VS15. Поэтому на сервере сборки у меня есть ошибка «Импортированный проект» C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ SSDT \ Microsoft.Data.Tools.Schema.SqlTasks.targets "не найден" , Где я могу найти Portable Library Tools для VS15? – RuF

2

Microsoft.VSSDK.BuildTools

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

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

+0

Звучит прекрасно, однако пакет NuGet выглядит устаревшим: 'Невозможно разрешить зависимости. «Microsoft.CodeAnalysis.Analyzers 1.1.0» несовместим с «Ограничением Microsoft.CodeAnalysis.Common 1.0.0». –

+0

Возможности: 1) Попробуйте добавить пакет [Microsoft.CodeAnalysis.Common 1.1.1] (https://www.nuget.org/packages/Microsoft.CodeAnalysis.Common/). 2) Отследить или принять участие в обсуждении [этой связанной проблемы] (https://github.com/dotnet/roslyn/issues/9292) в репозитории Roslyn GitHub. 3) Обратитесь за помощью к Microsoft в [комнате с расширенным номером Gitter] (https://gitter.im/microsoft/extendvs). – weir

+0

Я пробовал это похоже на то, как я обрабатываю веб-приложения, и он построен без ошибок, но на самом деле ничего не сделал. –

1

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

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

  1. Редактировать проект VSIX .csproj файл и удалить Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />. Это не удастся на сервере сборки, где VSSDK не существует в VSToolsPath.
  2. В VS2015 IDE, открыть NuGet Package Manager для проекта, и установить 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" .../>
Смежные вопросы