Поделиться через


Обновление до .NET.NET Aspire 9.0

.NET .NET Aspire 9.0 теперь общедоступен. В этой статье описаны шаги, связанные с обновлением существующих проектов .NET Aspire 8.x до .NET Aspire 9.0. Существует несколько способов обновления проектов до .NET.NET Aspire 9.0.

  • Вручную обновите проекты до .NET.NET Aspire 9.0.
  • Используйте помощник по обновлению для обновления проектов до .NET.NET Aspire 9.0.

Совет

Если вы не знакомы с .NET.NET Aspire, нет никаких причин что-либо обновлять. Дополнительные сведения см. в .NET.NET Aspire настройке и инструментах.

Необходимые условия

Перед обновлением проектов до .NET.NET Aspire 9.0 убедитесь, что у вас есть следующие предварительные требования:

Заметка

Вы можете удалить рабочую нагрузку .NET.NET Aspire, так как она вам больше не потребуется.

dotnet workload uninstall aspire

Для получения дополнительной информации см. статью о снятии рабочей нагрузки dotnet .

Если вы не удалите рабочую нагрузку .NET.NET Aspire и используете новые .NET.NET Aspire sdk и шаблоны, вы увидите как шаблоны .NET Aspire 8.0, так и .NET Aspire 9.0.

Обновление вручную до .NET.NET Aspire 9.0

Чтобы обновить проекты до .NET.NET Aspire 9.0, необходимо обновить файлы проекта. Следующие шаги помогут вам выполнить следующие действия.

  • Измените файл проекта узла приложения , чтобы использовать новый пакет SDK .NET.NET Aspire 9.0 (Aspire.AppHost.Sdk).
  • Обновите пакеты NuGet в файлах проекта до последних версий.
  • Настройте файл Program.cs, чтобы использовать новые API и удалить устаревшие API.

Отредактируйте файл проекта основного узла приложения

Чтобы обновить хост-проект вашего приложения до .NET.NET Aspire 9.0, необходимо обновить файл проекта, чтобы использовать новый 📦Aspire.AppHost.Sdk:

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

+  <Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" />

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsAspireHost>true</IsAspireHost>
    <UserSecretsId>0afc20a6-cd99-4bf7-aae1-1359b0d45189</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Aspire.Hosting.AppHost" Version="8.0.0" />
  </ItemGroup>

</Project>

При необходимости обновите идентификатор целевой платформы (TFM)

.NET Aspire 9.0 работает на .NET 9.0, но его можно также запустить на .NET 8.0. Другими словами, так как вы используете пакет SDK .NET Aspire и указываете на пакеты версии 9.0, вы по-прежнему можете использовать .NET 8.0. Если вы хотите запустить проект .NET Aspire 9.0 на .NET 9.0, необходимо обновить свойство TargetFramework в файле проекта:

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

  <Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" />

  <PropertyGroup>
    <OutputType>Exe</OutputType>
-   <TargetFramework>net8.0</TargetFramework>
+   <TargetFramework>net9.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsAspireHost>true</IsAspireHost>
    <UserSecretsId>0afc20a6-cd99-4bf7-aae1-1359b0d45189</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Aspire.Hosting.AppHost" Version="9.1.0" />
  </ItemGroup>

</Project>

Дополнительные сведения о TFMs см. в разделе Целевые платформы в проектах в стиле SDK: последние версии.

Общие различия в проекте хоста приложения

Если вы выполнили все описанные выше действия, файл проекта узла приложения должен выглядеть следующим образом:

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

+  <Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" />

  <PropertyGroup>
    <OutputType>Exe</OutputType>
-   <TargetFramework>net8.0</TargetFramework>
+   <TargetFramework>net9.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsAspireHost>true</IsAspireHost>
    <UserSecretsId>0afc20a6-cd99-4bf7-aae1-1359b0d45189</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
-   <PackageReference Include="Aspire.Hosting.AppHost" Version="8.0.0" />
+   <PackageReference Include="Aspire.Hosting.AppHost" Version="9.1.0" />
  </ItemGroup>

</Project>

Изменения включают добавление Aspire.AppHost.Sdk, обновление свойства TargetFramework до net9.0, а также обновление пакета Aspire.Hosting.AppHost до версии 9.0.0.

Измените файл Program.cs

С введением .NET.NET Aspire 9.0 есть некоторые нарушающие изменения. Некоторые API были первоначально помечены как экспериментальные (с ExperimentalAttribute), и теперь они удалены, а другие API теперь обозначены как ObsoleteAttribute с подробными сведениями о новых заменяющих API. Чтобы использовать новые API, необходимо настроить файл Program.cs (и потенциально другие затронутые API). Если вы используете Upgrade Assistant для модернизации своих проектов, он автоматически корректирует файл Program.cs в большинстве случаев.

Полный список критических изменений в .NET.NET Aspire 9.0 см. в разделе Критические изменения в .NET.NET Aspire 9.0.

Используйте помощника по обновлению

Помощник по обновлению — это инструмент, который помогает обновить целевые проекты до последней версии. Если вы впервые используете помощника по обновлению, у вас есть два режима на выбор.

Независимо от того, как установить помощник по обновлению, его можно использовать для обновления проектов .NET Aspire 8.x до .NET Aspire 9.0.

Чтобы обновить проект узла приложения .NET Aspire до .NET Aspire 9.0 с помощью Visual Studio, щелкните правой кнопкой мыши на проект в обозревателе решений и выберите Обновить .

Важный

Если Помощник по обновлению еще не установлен, вам будет предложено установить его.

Помощник по обновлению отображает приветственный пакет. Выберите опцию Aspire обновлений:

Visual Studio: страница приветствия помощника обновления с проектом размещения приложения .NET Aspire.

При выборе параметра обновления Aspire помощник по обновлению отображает доступные для выбора целевые компоненты обновления. Оставьте все выбранные параметры и выберите выбора обновления:

Visual Studio: помощник по обновлению .NET Aspire компоненты, доступные для обновления.

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

Visual Studio: проект узла приложения Upgrade Assistant .NET Aspire успешно обновлен.

Чтобы обновить проект узла приложения .NET.NET Aspire, убедитесь, что установлен интерфейс командной строки помощника по обновлению. Откройте сеанс терминала в корневом каталоге файла проекта узла приложения .NET.NET Aspire и выполните следующую команду:

upgrade-assistant upgrade

Вывод интерактивен, предлагая выбрать тип обновления. Выберите опцию обновления Aspire:

 Selected options
────────────────────────────────────────────────────────────────────────────────────
 Source project     ..\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj

 Steps
────────────────────────────────
 Source project / Upgrade type
────────────────────────────────

How do you want to upgrade project AspireSample.AppHost?

> Aspire upgrades
    Upgrade to latest .NET Aspire version (aspire.latest)

  Upgrade project to a newer .NET version
    In-place project upgrade (framework.inplace)

  NuGet upgrades
    NuGet central package management (CPM) (nuget.cpm)

  Navigation
    Back
    Exit

Используйте клавиатуру, чтобы перемещаться вверх или вниз и выбрать опцию усовершенствования Aspire. Помощник по обновлению запрашивает окончательное подтверждение. Введите Y, чтобы продолжить обновление:

 Selected options
────────────────────────────────────────────────────────────────────────────────────
 Source project     ..\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
 Upgrade type       aspire.latest

 Steps
──────────────────────────────────────────
 Source project / Upgrade type / Upgrade
──────────────────────────────────────────

We have gathered all required options and are ready to do the upgrade. Do you want to continue? [y/n] (y):

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

Finalizing operation...
Complete: 3 succeeded, 0 failed, 7 skipped.

Обновление пакетов NuGet

Чтобы воспользоваться последними обновлениями в решении .NET.NET Aspire, обновите все пакеты NuGet до версии 9.0.0.

Чтобы обновить проект узла приложения, используйте следующую команду cli .NET, чтобы обновить пакет Aspire.Hosting.AppHost до версии 9.0.0:

dotnet add package Aspire.Hosting.AppHost --version 9.0.0

Если ссылка на пакет уже существует, команда dotnet add package обновляет ссылку на указанную версию. Дополнительные сведения см. в разделе dotnet add package.

При обновлении проекта узла приложения файл проекта должен выглядеть следующим образом:

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

  <Sdk Name="Aspire.AppHost.Sdk" Version="9.0.0" />

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsAspireHost>true</IsAspireHost>
    <UserSecretsId>0afc20a6-cd99-4bf7-aae1-1359b0d45189</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
-   <PackageReference Include="Aspire.Hosting.AppHost" Version="8.0.0" />
+   <PackageReference Include="Aspire.Hosting.AppHost" Version="9.1.0" />
  </ItemGroup>

</Project>

Совет

Вы также хотите обновить пакеты NuGet в других проектах до последних версий.

Проверка обновления

Как и при любом обновлении, убедитесь, что приложение выполняется должным образом и что все тесты проходят. Создайте решение и найдите предложения, предупреждения или ошибки в окне вывода, чтобы устранить все, что раньше не было проблемой. Если вы столкнулись с проблемами, сообщите нам, создав GitHub заявку.