Ответ 1
Легко. Был поиск резолюции для этого раньше, и я все, что мне нужно было сделать, это просто добавить это в затронутые проекты.
<PropertyGroup>
<RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
</PropertyGroup>
Я пытаюсь обновить проект.net core 2.1 до последней версии пакетов Nuget, таких как Microsoft.Extensions.DependencyInjection.Abstractions 2.1.1.
Однако это блокируется ссылкой на пакет Microsoft.NETCore.App, когда я пытаюсь обновить пакет "meta" Microsoft.NETCore.App. Я вижу "Заблокировано проектом", аналогичным этому вопросу. Это было разрешено путем перехода на более новую версию SDK, но это не вариант здесь... потому что нет более новой версии SDK (пока?).
Я также видел этот ответ, чтобы обновить определенные пакеты, отредактировав файл.csproj вручную с помощью ссылки на пакет обновления, но я сомневаюсь, что это был намеченный метод.
Как мне это сделать? На данный момент я только вручную включил ссылки на пакеты, которые я фактически использовал, и сбросил мета-пакет, но я не могу представить, что это был намеченный способ.
Легко. Был поиск резолюции для этого раньше, и я все, что мне нужно было сделать, это просто добавить это в затронутые проекты.
<PropertyGroup>
<RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
</PropertyGroup>
В моем случае это было вызвано отсутствием атрибута Version
на Microsoft.AspNetCore.App
.
По какой-то причине, когда был создан проект WebApi, пакет был указан следующим образом:
<PackageReference Include="Microsoft.AspNetCore.App" />
Добавление отсутствующего атрибута разрешало все проблемы с обновлениями и строилось на сервере сборки.
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
У меня был установлен только Microsoft.NETCore.App 2.1.1
и я не смог обновить его до Microsoft.NETCore.App 2.1.2
в окне " Manage NuGet Packages...
поскольку на нем отображалось "Заблокировано проектом":
На изображении выше он показывает, что я на последней версии уже, потому что я сделал следующее...
1 - загрузите последнюю версию .NET Core SDK (v2.1.302 на данный момент) здесь:
https://www.microsoft.com/net/download
2 - установите его и выполните следующую команду в Package Manager Console
Visual Studio или в Windows PowerShell. Это должно показать следующее:
PM> dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.1.302
Commit: 9048955601
Runtime Environment:
OS Name: Windows
OS Version: 10.0.17134
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.1.302\
Host (useful for support):
Version: 2.1.2
Commit: 811c3ce6c0
.NET Core SDKs installed:
1.0.0-rc4-004771 [C:\Program Files\dotnet\sdk]
1.0.0 [C:\Program Files\dotnet\sdk]
1.0.3 [C:\Program Files\dotnet\sdk]
1.0.4 [C:\Program Files\dotnet\sdk]
1.1.0 [C:\Program Files\dotnet\sdk]
2.0.2 [C:\Program Files\dotnet\sdk]
2.1.2 [C:\Program Files\dotnet\sdk]
2.1.4 [C:\Program Files\dotnet\sdk]
2.1.100 [C:\Program Files\dotnet\sdk]
2.1.101 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
2.1.105 [C:\Program Files\dotnet\sdk]
2.1.200 [C:\Program Files\dotnet\sdk]
2.1.201 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.300-preview2-008533 [C:\Program Files\dotnet\sdk]
2.1.300-rc1-008673 [C:\Program Files\dotnet\sdk]
2.1.300 [C:\Program Files\dotnet\sdk]
2.1.301 [C:\Program Files\dotnet\sdk]
2.1.302 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.0-rc1-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 1.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 1.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0-preview2-26406-04 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0-rc1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
PM>
Редактирование моего.csproj файла и добавление для меня следующей строки:
<PackageReference Include="Microsoft.NetCore.App" Version="2.1.1" />
В моем случае ответ @Patrick правильный. По крайней мере, для VS 2017 (15.8.9) с установленным файлом SDK "dotnet-sdk-2.1.403-win-x64.exe".
Признаки. При создании нового веб-проекта для версии Aspnetcore.App устанавливается значение 2.1, даже если установлен последний SDK. Попытка изменить версию с помощью диспетчера NuGet отвечает "проект заблокирован".
Решение: Добавьте Version = "2.1" к ссылке в CSPROJ следующим образом:
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1" />
После сохранения/повторного открытия менеджер NuGet позволит выбрать другие версии SDK. Обратите внимание, что добавление Version = "2.1.5" напрямую, а затем сохранение файла CSProj должно автоматически инициировать обновление/восстановление.
Спасибо, Патрик
Для меня у меня была следующая строка дважды в файле csproj
<PackageReference Include="Microsoft.AspNetCore.StaticFiles " Version="2.2.0" />
Простое удаление дубликата решило проблему
Как @Simon_Weaver сказал, что это происходит, когда не указана версия и 2.1.301 SDK отсутствует в системе