Обновление Microsoft.AspNetCore.App 2.1.1 «Заблокировано проектом»

Я пытаюсь обновить проект .net core 2.1 до последней версии пакетов Nuget, таких как Microsoft.Extensions.DependencyInjection.Abstractions 2.1.1.

Однако это заблокировано ссылкой на пакет Microsoft.NETCore.App, когда я пытаюсь обновить «мета» пакет Microsoft.NETCore.App, я вижу «Заблокировано проектом», похожее на этот вопрос. Это было решено путем перехода на более новую версию SDK, однако это не вариант здесь ... потому что нет более новой версии SDK (пока?).

Я также видел этот ответ для обновления определенных пакетов путем редактирования файла .csproj вручную со ссылкой на пакет обновления, но я сомневаюсь, что это предполагаемый способ сделать это.

Как должен я это делаю? На данный момент я просто вручную включил ссылки на пакеты, которые я действительно использую, и отбросил метапакет, но я не могу представить, что это предполагаемый способ сделать это.

Релевантно: twitter.com/DamianEdwards/status/1009137684898435073 Проект заблокирован целиком по дизайну. Пакеты Asp.NET нуждаются в соответствующем SDK для правильной работы. Обновить их oob не вариант.

imps 21.06.2018 21:03

Перед тем как это сделать, вы можете прочитать информацию в этом> github.com/aspnet/AspNetCore/issues/9097#issuecomment-517922‌ 943

JimiSweden 30.08.2019 14:01

... И раздел 4 из docs.microsoft.com/en-us/nuget/consume-packages/… (для некоторых пакетов кнопка «Обновить» отключена, и появляется сообщение о том, что на него «неявно ссылается SDK» (или «AutoReferenced»). Это сообщение указывает, что пакет является частью более крупного framework или SDK и не должны обновляться независимо ... Это относится к следующим часто используемым пакетам: Microsoft.AspNetCore.All Microsoft.AspNetCore.App Microsoft.NETCore.App NETStandard.Library)

JimiSweden 30.08.2019 14:07

Ваши комментарии могут быть полезны, но вы можете узнать дату публикации этого сообщения. Особенно год немного;)

Elva 30.08.2019 15:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
53
5
23 918
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

У меня сработало редактирование моего файла .csproj и добавление следующей строки:

<PackageReference Include = "Microsoft.NetCore.App" Version = "2.1.1" />

Я уже несколько часов борюсь с проблемой отсутствия версии 2.1 для нового проекта. Решил попробовать воспользоваться этим методом. Не повезло. Вот ошибка: в ваш проект была включена ссылка на PackageReference для Microsoft.NETCore.App. На этот пакет неявно ссылается .NET SDK, и вам обычно не нужно ссылаться на него из вашего проекта. Для получения дополнительной информации см. aka.ms/sdkimplicitrefs TipShare C: \ Program Files \ dotnet \ sdk \ 2.1.201 \ Sdks \ Microsoft.NET.Sdk \ build \ Micros‌ oft.NET.Sdk.DefaultI‌ tems.targets 198 Я пробовал это.

John 25.06.2018 00:24

Убедитесь, что у вас установлена ​​среда выполнения 2.1.1 в дополнение к SDK. Запустите dotnet --info, и вы должны увидеть Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Simon_Weaver 25.06.2018 10:45

Если у вас установлена ​​среда выполнения 2.1.1, это работает, и, насколько мне известно, это единственный способ заставить ее работать (сегодня). Люди должны проверить информацию перед голосованием против.

TadGhostal 27.06.2018 23:50

Я согласен, это работает и (или действительно должно быть) требуется в дополнение к ответу Николая выше ...

padigan 19.07.2018 15:26

И не забывайте, что в .net 2.1 версия начальной загрузки - 3.7, а в .net 2.2 - версия начальной загрузки 4.3.

Diego Venâncio 06.04.2019 00:11

Microsoft не рекомендует явно указывать Version. Глянь сюда

Arnab 08.04.2019 08:40
Ответ принят как подходящий

Легкий. Я искал решение для этого раньше, и все, что мне нужно было сделать, это просто добавить это в затронутые проекты.

  <PropertyGroup>
    <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
  </PropertyGroup>

Дополнительно для .NET Core 3 и выше,

   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>

Также был опубликован ответ Патрик ниже, в котором указывалось, что для некоторых проектов требуется пакет NuGet для приложений .NET Core. После .NET Core 3 вам это больше не понадобится.

Это сработало для меня, однако заметил, что как только вы создаете новый проект, он не содержит упомянутого кода конфигурации. Таким образом, все еще ссылается на библиотеку 2.1.0 вместо 2.1.1. Это ошибка Visual Studio, поскольку она предназначена для последней установленной SDK?

Megrez7 27.06.2018 23:37

@ Megrez7 Я на самом деле столкнулся с этой проблемой .. Я сообщу вам, если у меня будет какое-то подтверждение

Nicholas 29.06.2018 14:24

У меня установлен SDK 2.1.302, и хотя это «принудительно» приводит пакеты к указанной версии, мне это кажется ошибкой, поскольку проекты должны быть нацелены на версию установленного SDK (как в действительности говорится в NuGet!?!) но этого явно не происходит

padigan 19.07.2018 15:26

И не забывайте, что в .net 2.1 версия начальной загрузки - 3.7, а в .net 2.2 - версия начальной загрузки 4.3.

Diego Venâncio 06.04.2019 00:11

Это исправило это для меня с консолидацией с 2.2.0 на 2.2.3.

Jay 06.04.2019 01:18

Перед тем, как это сделать, вы можете прочитать информацию в этом> github.com/aspnet/AspNetCore/issues/9097#issuecomment-517922‌ 943

JimiSweden 30.08.2019 13:49

Как сказал @Simon_Weaver, это происходит, когда версия не указана и 2.1.301 SDK отсутствует в системе

По крайней мере, для меня это не так, у меня установлен SDK 2.1.302, и при создании новых проектов они работают нормально, а в nuget Microsoft.NetCore.App говорит, что 2.1.2 - однако в существующих проектах, созданных до установки 2.1.302 У меня такая проблема.

padigan 19.07.2018 15:21

Каждая версия пакета соответствует своей версии SDK. 2.1.0 -> 2.1.300 2.1.1 -> 2.1.301 2.1.2 -> 2.1.302

Andrii 05.08.2018 21:41

У меня был установлен только Microsoft.NETCore.App 2.1.1, и я не мог обновить его до Microsoft.NETCore.App 2.1.2 в окне Manage NuGet Packages..., потому что он показал "Заблокировано проектом":

На изображении выше видно, что я уже использую последнюю версию, потому что я сделал следующее ...

1 - загрузите последнюю версию (на данный момент v2.1.302) Пакет SDK для .NET Core здесь:

https://www.microsoft.com/net/download

2 - установите его и выполните следующую команду в Visual Studio Package Manager Console или в 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.

MC9000 06.03.2019 04:57

И не забывайте, что в .net 2.1 версия начальной загрузки - 3.7, а в .net 2.2 - версия начальной загрузки 4.3.

Diego Venâncio 06.04.2019 00:11

В моем случае это было вызвано отсутствием атрибута Version на Microsoft.AspNetCore.App.

По какой-то причине при создании проекта WebApi ссылка на пакет выглядела так:

<PackageReference Include = "Microsoft.AspNetCore.App" />

Добавление отсутствующего атрибута решило все проблемы с обновлениями и сборками на сервере сборки.

<PackageReference Include = "Microsoft.AspNetCore.App" Version = "2.1.1" />

Я не уверен, что это решение верный. Видимо, можно не устанавливать версию и просто установить последний SDK: stackoverflow.com/a/50977058/161640

Isaac 16.09.2018 18:51

@Isaac Я пробовал разные решения, включая установку SDK и Runtime вручную, но на самом деле ничего не работало, кроме установки явной версии AspNetCore.App. Обратите внимание, что это AspNetCore, а не NetCore. Кроме того, это могло быть связано с инструментами - с тех пор в VS 2017 было несколько обновлений.

Patrick 19.09.2018 09:12

В моем случае ответ @ 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 должно запускать обновление / восстановление автоматически.

Спасибо @Patrick

Для меня у меня дважды была следующая строка в файле csproj

<PackageReference Include = "Microsoft.AspNetCore.StaticFiles " Version = "2.2.0" />

Простое удаление дубликата решило проблему

  1. Щелкните правой кнопкой мыши свой проект
  2. Щелкните "Свойства".
  3. Измените "Target Framework" соответствующим образом
  4. Сохраните и закройте окно свойств. Это решит проблему автоматически, иначе вы можете перейти в Nuget и обновить сборки самостоятельно.

Целевая платформа - netcoreapp2.0, netcoreapp2.1, netcoreapp2.2, но здесь мы обсуждаем версию исправления, поэтому ваше предложение не применимо для решения.

Lukasz Szczygielek 21.11.2019 18:15

Другие вопросы по теме