VSTS build: Пакеты не удалось восстановить - Не удалось разрешить "NETStandard.Library( >= 1.6.1)" для ".NETStandard, Version = v2.0"

Я получаю

Невозможно разрешить "NETStandard.Library( >= 1.6.1)" для ".NETStandard, Version = v2.0".

в сборке VSTS с использованием агента сборки Hosted2017 после того, как я обновил приложение aspnetcore до netcoreapp2.0 и мои библиотеки, чтобы использовать netstandard2.0.

Работает нормально локально.

Я изменил определение сборки для использования задачи сборки ядра .net v2.* preview:

подробности определения сборки

вот журнал сборки:

Current agent version: '2.120.2'
Download all required tasks.
Downloading task: DotNetCoreCLI

Starting: Get Sources
Syncing repository: Liero/vyvojari-sk (GitHub)
...details ommited
HEAD is now at e448a25... Upgraded to .NET Core 2.0
Finishing: Get Sources

Starting: Restore
==============================================================================
Task         : .NET Core
Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command. For package commands, supports NuGet.org and authenticated feeds like Package Management and MyGet.
Version      : 2.0.5
Author       : Microsoft Corporation
Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)
==============================================================================
SYSTEMVSSCONNECTION exists true
Downloading: https://dist.nuget.org/win-x86-commandline/v4.0.0/nuget.exe
Caching tool: NuGet 4.0.0 x64
Using version: 4.0.0
Found tool in cache: NuGet 4.0.0 x64
Saving NuGet.config to a temporary config file.
Can\'t find loc string for key: NGCommon_NoSourcesFoundInConfig
NGCommon_NoSourcesFoundInConfig d:\a\1\Nuget\tempNuGet_734.config
"C:\Program Files\dotnet\dotnet.exe" restore d:\a\1\s\src\CommandStack\CommandStack.csproj --configfile d:\a\1\Nuget\tempNuGet_734.config --verbosity Detailed
  Restoring packages for d:\a\1\s\src\CommandStack\CommandStack.csproj...
C:\Program Files\dotnet\sdk\1.0.4\NuGet.targets(97,5): error : Unable to resolve 'NETStandard.Library (>= 1.6.1)' for '.NETStandard,Version=v2.0'. [d:\a\1\s\src\CommandStack\CommandStack.csproj]
  Generating MSBuild file d:\a\1\s\src\CommandStack\obj\CommandStack.csproj.nuget.g.props.
  Generating MSBuild file d:\a\1\s\src\CommandStack\obj\CommandStack.csproj.nuget.g.targets.
  Writing lock file to disk. Path: d:\a\1\s\src\CommandStack\obj\project.assets.json
  Restore failed in 115.64 ms for d:\a\1\s\src\CommandStack\CommandStack.csproj.

  Errors in d:\a\1\s\src\CommandStack\CommandStack.csproj
      Unable to resolve 'NETStandard.Library (>= 1.6.1)' for '.NETStandard,Version=v2.0'.

  NuGet Config files used:
      d:\a\1\Nuget\tempNuGet_734.config
Error: C:\Program Files\dotnet\dotnet.exe failed with return code: 1
Packages failed to restore
******************************************************************************
Finishing: Restore
******************************************************************************

и вот исходный код: https://github.com/Liero/vyvojari-sk/tree/e448a25fb8c481704e9102aaaeb8b84b9aee7b02

Ответы

Ответ 1

Обновление 18/09/2017

Шаг 2 больше не нужен. Я оставил его в решении, хотя он может помочь некоторым людям. Спасибо, @Liero за это.


Оригинальный ответ

Я тоже испытал эту проблему и решил ее, выполнив три вещи:

  • Используйте .NET Core SDK (! - не runtime!) версии 2.0.0: введите описание изображения здесь

  • Используйте последнюю версию NuGet (4.3.0): введите описание изображения здесь

  • Восстановите свои пакеты: введите описание изображения здесь

Обновление Здесь стоит указать, что вы должны указать, откуда вы получаете пакеты NuGet. Большинство приложений, вероятно, просто используют фид NuGet.org в соответствии с снимком экрана (см. Небольшой флажок), но у вас могут быть ваши собственные каналы, указанные в файле NuGet.config. В этом случае отметьте "Подает в моем NuGet.config", а затем укажите путь к этому файлу.

Чтобы проиллюстрировать заказ, это моя рабочая очередь: введите описание изображения здесь

Надеюсь, это поможет вам и всем, кто столкнулся с этой проблемой. Если у вас есть какие-либо вопросы, дайте мне знать.:)

Ответ 2

Вам следует выбрать Каналы (я), которые я выбрал здесь, чтобы использовать фиды. Если вы оставите Использовать пакеты из этого корня VSTS/TFS пустым, пакеты будут загружены из https://dist.nuget.org/.

введите описание изображения здесь

Иначе, если вы хотите использовать Каналы в моем NuGet.config в качестве используемых фидов, вам следует указать путь к вашему файлу NuGet.config.

Ответ 3

Я получил аналогичную ошибку после создания проекта с помощью dotnet new angular, который создал проект, основанный на netcoreapp2.0. Проверка свойств проекта показала, что версия 2.0 не была должным образом распознана (не отображается в списке установленных фреймов).

Решение заключалось в обновлении Visual Studio 2017, поскольку минимальная версия, необходимая для поддержки проектов netcoreapp2.0, кажется 15.3.1.

Ответ 4

Для меня работала установка .NET Core SDK 2.0 и внесение следующих изменений:

в .csproj:

изменить

<TargetFramework>netcoreapp1.1.0</TargetFramework>

to

<TargetFramework>netcoreapp2.0</TargetFramework>

и в global.json:

"sdk": { "version": "1.1.0" }

to

"sdk": { "version": "2.0.0" }

Я не знал, как использовать решение Chris Paton

Ответ 5

Обновление версии Visual Studio 2017 до последней версии 15.4.1 разрешило проблему для меня.