Как обновить AspNetCore с 2.2.0 до 2.2.2 - PullRequest
0 голосов
/ 23 февраля 2019

tldnr: Как мне обновить Microsoft.AspNetCore.App с 2.2.0 до 2.2.2?Он отключен в интерфейсе менеджера пакетов.


Когда я создал тестовый проект, я понял, что Microsoft.AspNetCore.App - это версия 2.2.2 (самая новая версия), тогда как в моем основном проекте Api это было 2.2.0.

projects dependencies and SDK references

Не удалось обновить его из-за

Неявно ссылается SDK.Чтобы обновить пакет, обновите SDK, к которому он принадлежит

nuget manager blocking update of package to 2.2.2

У меня установлен SDK 2.2.104, который долженсодержат 2.2.2 (мне нравится, насколько откровенна Microsoft с ее номерами версий)

C:\Users\matthias>dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.503 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009472 [C:\Program Files\dotnet\sdk]
2.2.104 [C:\Program Files\dotnet\sdk]

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

Файл проекта взят из шаблона по умолчанию.

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

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

</Project>

Источник: https://github.com/matthiaslischka/netcore222updateissue

ОБНОВЛЕНИЕ:

Теперь я добавил RuntimeFrameworkVersion 2.2.2 к csproj, как предложил ESG, и теперь я получаю это странное представление:

Nuget manager shows different versions for the same package

Я проверил скомпилированные библиотеки DLL с помощью ILSpy и, похоже, он все еще равен 2.2.0.0 ilspy show version 2.2.0.0

Ответы [ 3 ]

0 голосов
/ 15 мая 2019

Кто-нибудь знает, как это сделать правильно?

Я отправил вопрос в AspNetCore Github.

Вот ссылка для этого https://github.com/aspnet/AspNetCore/issues/10249

Я думаю,на самом деле это ошибка (ошибка VS или ошибка dotnet, я не знаю)

Посмотрим, что будет дальше.

0 голосов
/ 15 мая 2019

Я опубликовал это в ответ на ошибку Энди в GitHub, но повторно опубликовал его здесь для дальнейшего достижения:

Если вы используете .NET Core, единственное, что вам нужно сделать, чтобы обновить патч, этоустановите самую последнюю исправленную среду выполнения на машине, на которой запущено приложение (т. е. на ваших серверах, устройствах разработки и т. д.).

.NET Core приложения автоматически откат к самой высокой версии исправления, связанной спара мажор / минор, на которую вы нацелены.Это поведение можно отключить, используя параметр в [appname].runtimeconfig.json, но мы настоятельно рекомендуем сохранить его, чтобы обеспечить постоянную работу в самой современной среде выполнения (со всеми выпущенными средствами безопасности).исправления).

Несмотря на то, что мы рекомендуем запустить на последнем патче, мы рекомендуем не обновлять приложение, чтобы оно предназначалось для более поздних версий патчей, как оно будет не может запуститься , если этого патча не существует на целевой машине.В патчах не должно быть API-интерфейсов, от которых нужно обновляться, поэтому нет необходимости обновлять ссылку на пакет.

0 голосов
/ 23 февраля 2019

Поскольку у вас есть 2.2.2 .Net core SDK, вы форсируете версию ASP.Net, указав RuntimeFrameworkVersion в вашем csproj.

<PropertyGroup>
    <RuntimeFrameworkVersion>2.2.2</RuntimeFrameworkVersion>
</PropertyGroup>
...