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 разрешило проблему для меня.