2016-07-22 3 views
12

Я пытаюсь построить свое решение с помощью TeamCity/MSBuild. Это проект WebAPI, который разделяет некоторые объекты в PCL с мобильным клиентом.Ошибка APPX3212: Корневая папка SDK для 'Portable 7.0' не найдена

Я вижу, есть несколько предостережений вокруг получения справочных библиотек PCL, установленные на buildserver, которые я думаю, я отсортирован (Building Portable Class Library Project in build server fails)

Однако я получаю сообщение об ошибке во время сборки из портативная библиотека классов следующим образом:

[11:20:49][Doctrina.Pcl.Entities\Doctrina.Pcl.Entities.csproj] _GetSdkToolPaths [11:20:49][_GetSdkToolPaths] GetSdkPropertyValue *[11:20:49][GetSdkPropertyValue] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(975, 5): error APPX3212: SDK root folder for 'Portable 7.0' cannot be located. See http://go.microsoft.com/fwlink/?prd=12560&pver=1.0&plcid=0x409&ar=MSDN&sar=PlatformMultiTargeting&o1=Portable&o2=7.0 for more information.*

«помощи» ссылка не пойти куда-нибудь полезным, и это, кажется, очень устойчивые к Google с точки зрения нахождения любого разрешения.

У меня нет Visual Studio 2015, установленного на сервере сборки вообще, но я установил инструменты PortableClassLibrary, скопировал справочный каталог с моего локального ПК и т. Д. В соответствии с другим связанным вопросом SO.

Помогите, пожалуйста?

+0

OK. Я решил эту ошибку, установив «VS2015 Community Edition» на моем сервере сборки, так что явно есть что-то Xamarin-y, которое является частью установки VS, но не установлено инструментами PCL. Кто-нибудь знает, что это? –

+1

установка VS2015 CE звук такой экстремальный. На данный момент я испытываю такую ​​же проблему. Хочется, чтобы кто-то справился. - Добавлена ​​щедрость ... может быть, сейчас это привлечет некоторое внимание :) –

+0

Вы проверили этот ответ - http://stackoverflow.com/a/19385710/1824367 У меня была аналогичная проблема, и я решил решить ее с помощью аналогичного решение. – mattferderer

ответ

4

Я столкнулся с этой ошибкой при попытке создания переносных проектов с таргетингом на .NET Standard.

мне удалось решить это без установки Visual Studio на моем сервере сборки, путем копирования из машины, что делает установлен Visual Studio:

  • C: \ Program Files (x86) \ Microsoft SDKs \ Portable \ v14.0
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ Portable
  • C: \ Program Files (x86) \ ReferenceAssemblies \ Microsoft \ Framework.NETPortable

позже я попытался построитьWebAPI проект таргетинга .NET ядра (это файл xproj) и как только я добавил файл XProj к моему решению, мне пришлось скопировать:

  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ DotNet
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ DotNet.Web

это заставило меня немного дальше, но это также вызвало другие проекты, чтобы прекратить правильно строить (которые отлично работали без файла XProj в решении). Одна вещь, которую я заметил, инструмент NuGet для .NET Core не поддерживает аутентифицированные фиды NuGet, поэтому мне пришлось включить анонимный доступ к моему каналу. Но теперь мой проект .NET Standard теперь терпит неудачу с ошибкой MSB4057: целевой объект «_GenerateDependencyFragmentJson» не существует в проекте.

Мне еще предстоит выяснить это, но я надеюсь, что приведенная выше информация поможет кому-то. Если вы не используете xproj-файлы и просто пытаетесь использовать проекты .NET Standard, вы должны все, что вам нужно, создать без установки Visual Studio.

Как раз боковое примечание, я очень старался избежать копирования этих файлов, сначала попробовав установить Microsoft Build Tools 2015 Update 3, надеясь, что он поместит необходимые файлы на место, но это не было грустно.Я возлагаю надежды на следующую версию MSBuild, которая используется в VS15, и надеясь, что пакет инструментов для сборки будет иметь все необходимое для создания этого материала, когда он появится, так как это не похоже, что они обновляют 2015 Build Tools с этой поддержкой.

+0

Я столкнулся с тем же «MSB4057: цель« _GenerateDependencyFragmentJson »не существует в проекте». Вы действительно смогли это диагностировать? Пока единственное решение, которое я видел в Интернете, но еще не проверил, фактически устанавливает VS2015 на сервере сборки ... Что-то, чего я бы скорее избежал. –

+0

К сожалению, у меня не было времени для дальнейшей диагностики этой проблемы. Я уверен, что будет возможность избежать установки VS2015 на сервере, но для этого требуется пройти через целевые объекты MSBuild с помощью мелкозубчатого гребня, чтобы выяснить, что это ссылка, которая отсутствует на сервере сборки и должна быть вручную скопирована там. Вот как я нахожу то, что я упомянул в своем ответе. –

Смежные вопросы