2016-06-30 2 views
5

Недавно я обновил свои переносимые библиотеки классов для целевого .NET Core с использованием project.json и нового прошивки netstandard1.0. Я понимаю, что это поддерживается сейчас в Nuget 3.4. У меня есть следующий project.json для моего проекта:Visual Studio Team Services Build Package Restore failing with project.json netstandard1.0 target

{ 
    "supports": {}, 
    "dependencies": { 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
    "NETStandard.Library": "1.6.0" 
    }, 
    "frameworks": { 
    "netstandard1.0": {} 
    } 
} 

Это создает отличный от Visual Studio 2015 Update 3.

Однако при использовании VSTS (был Visual Studio Online) строить, теперь он дает мне следующее сообщение об ошибке во время пакета шаг восстановления:

The project 'MyProject' does not specify any target frameworks in 'C:\a\1\s\MyProject\project.json'. 

команда она показывает выполнение является:

NuGet.exe restore "C:\a\1\s\Build.sln" -NonInteractive -configfile "C:\a\1\NuGet\newNuGet.config" 

Это из-за выполнения восстановления от решения? Или, возможно, задача VSTS Build еще не использует Nuget 3.4?

+1

@ EricLiu ['NETStandard.Library' 1.6.0] (https://www.nuget.org/packages/NETStandard.Library/1.6.0) является единственной версией« NETStandard.Library »на NuGet. Это нормально, если вы используете более низкую версию «netstandard». – svick

+0

Я должен упомянуть, что это project.json, который был создан обновлением Visual Studio 2015 Update 3 после выбора новой ссылки «Target Net Standard Library» в Project Properties. Я был бы удивлен, если бы это было неправильно ... – pianomanjh

+0

@ EricLiu Да, но этот проект отлично подходит для проектов «netstandard1.0». Версия релиза! = Версия целевой рамочной программы. (Это глупо, что они выглядят одинаково) –

ответ

0

Была такая же проблема. Источником этой проблемы была версия «Nuget.exe» на сервере сборки. Установлено 3.2.X, но вам нужна версия 3.4.4-rtm. Nuget может обновить себя.

Чтобы обновить Nuget.exe: откройте командную строку и введите "C: \ PathToNuget \ nuget.exe обновление -self"

+0

Я забыл упомянуть, я использую размещенную сборку. Любая идея, как запустить nuget через задачу командной строки? Использование nuget.exe с параметром «update -self» в качестве аргументов дает «Имя файла не указывает полный путь к исполняемому файлу». – pianomanjh

+0

Вы можете добавить nuget.exe в свой репозиторий, а на этапе восстановления nuget вы можете указать путь к nuget-exe. Таким образом вы можете самостоятельно обновить nuget.exe, и у вас есть контроль над используемой версией. –

4

Вы можете расширить раздел Дополнительно и выберите последнюю версию NuGet. По состоянию на октябрь 2016 года это был Nuget 3.5 rc2

+0

Мы используем Nuget 3.5 rc2 (сборка 1829), но мы по-прежнему получаем следующую ошибку: .. \ project.json (15,26): Ошибка NU1001: Не удалось разрешить зависимость NetStandard.Library> = 1.6.0. Когда мы пытаемся запустить эту версию Nuget локально и запускаем сборку dotnet, это работает без проблем. – ghost

1

Я считаю, что он уже разрешен, и вы используете допустимую версию NuGet, но вы также можете добавить командную строку в качестве нового шага сборки сразу после установщика NuGet и invoke dotnet restore (Инструмент: dotnet, Аргументы: restore).

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