Подтвердить что ты не робот

Microsoft.Windows.UI.Xaml.CSharp.targets отсутствует на сервере CI

проблема

Я просто передал добавление приложения UWP к управлению источником. Однако моему CI-серверу (Jenkins), похоже, не понравилось:

Ошибка MSB4019: импортированный проект "C:\Program Files (x86)\MSBuild\Microsoft\WindowsXaml\v14.0\Microsoft.Windows.UI.Xaml.CSharp.targets" не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске.

Это происходит из-за импорта файла проекта UWP:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />

На моей локальной машине я вижу этот файл, расположенный по адресу:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.CSharp.Targets

Очевидно, это связано с моей локальной установкой Visual Studio 2017. Однако на сервере CI нет установленной Visual Studio. Я предполагаю, что именно поэтому MSBuildExtensionsPath решает путь, упомянутый в ошибке.

зависимости

На сервере CI уже установлены следующие элементы:

Я предположил, что они будут включать необходимые зависимости, но я не могу найти Microsoft.Windows.UI.Xaml.CSharp.targets где угодно.

Временное решение

Копирование каталога на моем локальном компьютере

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\WindowsXaml\v15.0

серверу CI на

C:\Program Files (x86)\MSBuild\Microsoft\WindowsXaml\v14.0

кажется, разрешает ошибку, но он чувствует себя очень взломанным.

Вопрос

Есть ли способ решить эту проблему без установки Visual Studio 2017 на сервере CI или копирования/переименования файлов вручную?


ОБНОВЛЕНИЕ 2018-01-12:

Это все еще проблема с последней версией VSBT. Единственное, что нужно сообщить, это ошибка, измененная с v14 на v15. После копирования одного и того же каталога на v15 ошибка снова исчезнет. Однако появляется другая, казалось бы, несвязанная ошибка:

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1124,5): ошибка MSB3644: сборки ссылок для фреймворка ".NETCore, Version = v5.0 "не были найдены. Чтобы решить эту проблему, установите пакет SDK или Targeting Pack для этой версии фреймворка или перенастройте приложение на версию фреймворка, для которого установлен пакет SDK или Targeting Pack. Обратите внимание, что сборки будут решены из глобального сборочного кэша (GAC) и будут использоваться вместо ссылочных сборок. Поэтому ваша сборка может быть неправильно нацелена на структуру, которую вы планируете использовать.


ОБНОВЛЕНИЕ 2018-01-15

.NETCore,Version=v5.0 устранена путем копирования следующего каталога с моей локальной машины на сервер сборки:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v5.0

Хотя сборка UWP успешна, никакого приложения не генерируется. Кажется, это указывает на то, что в VSBT отсутствует другая зависимость.

4b9b3361