diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json
index 31ea8958ed..dcf2e015df 100644
--- a/.openpublishing.redirection.json
+++ b/.openpublishing.redirection.json
@@ -339,6 +339,10 @@
{
"source_path_from_root": "/docs/deployment/aspire-deploy/local-deployment-state.md",
"redirect_url": "/dotnet/aspire/deployment/deployment-state-caching"
+ },
+ {
+ "source_path_from_root": "/docs/get-started/upgrade-to-aspire-9.md",
+ "redirect_url": "/dotnet/aspire/get-started/upgrade-to-aspire-13"
}
]
}
diff --git a/docs/azure/snippets/acr/AspireAcr.AppHost/AspireAcr.AppHost/AspireAcr.AppHost.csproj b/docs/azure/snippets/acr/AspireAcr.AppHost/AspireAcr.AppHost/AspireAcr.AppHost.csproj
index 98da25d92b..22ba2198ee 100644
--- a/docs/azure/snippets/acr/AspireAcr.AppHost/AspireAcr.AppHost/AspireAcr.AppHost.csproj
+++ b/docs/azure/snippets/acr/AspireAcr.AppHost/AspireAcr.AppHost/AspireAcr.AppHost.csproj
@@ -12,9 +12,9 @@
-
-
-
+
+
+
diff --git a/docs/azure/snippets/bicep/AppHost.Bicep/AppHost.Bicep.csproj b/docs/azure/snippets/bicep/AppHost.Bicep/AppHost.Bicep.csproj
index 6d1ca802d3..1407aaeb32 100644
--- a/docs/azure/snippets/bicep/AppHost.Bicep/AppHost.Bicep.csproj
+++ b/docs/azure/snippets/bicep/AppHost.Bicep/AppHost.Bicep.csproj
@@ -8,8 +8,8 @@
5e45e8bd-353b-48d8-ac57-a89e5ee3f8ec
-
-
+
+
diff --git a/docs/azure/snippets/bicep/WebHook.Api/WebHook.Api.csproj b/docs/azure/snippets/bicep/WebHook.Api/WebHook.Api.csproj
index 9028865617..51c6d407f2 100644
--- a/docs/azure/snippets/bicep/WebHook.Api/WebHook.Api.csproj
+++ b/docs/azure/snippets/bicep/WebHook.Api/WebHook.Api.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/docs/azure/snippets/customize-azure-with-infrastructure-resolver/CustomizeAzureWithInfrastructureResolver.csproj b/docs/azure/snippets/customize-azure-with-infrastructure-resolver/CustomizeAzureWithInfrastructureResolver.csproj
index 5856ed5f9f..323e7e6056 100644
--- a/docs/azure/snippets/customize-azure-with-infrastructure-resolver/CustomizeAzureWithInfrastructureResolver.csproj
+++ b/docs/azure/snippets/customize-azure-with-infrastructure-resolver/CustomizeAzureWithInfrastructureResolver.csproj
@@ -11,9 +11,9 @@
-
+
-
+
diff --git a/docs/community-toolkit/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj b/docs/community-toolkit/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
index 8ba04798d2..4856ad0ef4 100644
--- a/docs/community-toolkit/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
+++ b/docs/community-toolkit/snippets/Dapr/Dapr.AppHost/Dapr.AppHost.csproj
@@ -12,7 +12,7 @@
-
+
\ No newline at end of file
diff --git a/docs/community-toolkit/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj b/docs/community-toolkit/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/community-toolkit/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
+++ b/docs/community-toolkit/snippets/Dapr/Dapr.ServiceDefaults/Dapr.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/community-toolkit/snippets/Dapr/Dapr.Web/Dapr.Web.csproj b/docs/community-toolkit/snippets/Dapr/Dapr.Web/Dapr.Web.csproj
index 11e8420f2f..1766d25ec7 100644
--- a/docs/community-toolkit/snippets/Dapr/Dapr.Web/Dapr.Web.csproj
+++ b/docs/community-toolkit/snippets/Dapr/Dapr.Web/Dapr.Web.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
index 5724ad33a1..b5cad1034a 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.ApiService/AspireApp.ApiService.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
index aa2d97e424..cdd3ce0c8b 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -12,7 +12,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/database/snippets/cosmos-db/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/database/snippets/mysql-seed-data/MySQLSeedData.csproj b/docs/database/snippets/mysql-seed-data/MySQLSeedData.csproj
index 3b29528511..d60a7dd0ed 100644
--- a/docs/database/snippets/mysql-seed-data/MySQLSeedData.csproj
+++ b/docs/database/snippets/mysql-seed-data/MySQLSeedData.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/database/snippets/postgres-data-volume-deploy/PostgresDataVolumeDeploy.csproj b/docs/database/snippets/postgres-data-volume-deploy/PostgresDataVolumeDeploy.csproj
index cfba48a34f..35928dd553 100644
--- a/docs/database/snippets/postgres-data-volume-deploy/PostgresDataVolumeDeploy.csproj
+++ b/docs/database/snippets/postgres-data-volume-deploy/PostgresDataVolumeDeploy.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/database/snippets/sql-server-bind-mount/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/database/snippets/sql-server-bind-mount/AspireApp.AppHost/AspireApp.AppHost.csproj
index 74d8163d57..34274b8a3a 100644
--- a/docs/database/snippets/sql-server-bind-mount/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/database/snippets/sql-server-bind-mount/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/database/snippets/sql-server-bind-mount/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/database/snippets/sql-server-bind-mount/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/database/snippets/sql-server-bind-mount/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/database/snippets/sql-server-bind-mount/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/database/snippets/sql-server-integration/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/database/snippets/sql-server-integration/AspireApp.AppHost/AspireApp.AppHost.csproj
index 173c0f6eb3..dd7b0fbf6c 100644
--- a/docs/database/snippets/sql-server-integration/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/database/snippets/sql-server-integration/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/database/snippets/sql-server-integration/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/database/snippets/sql-server-integration/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/database/snippets/sql-server-integration/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/database/snippets/sql-server-integration/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/database/snippets/sql-server-integration/ExampleProject/ExampleProject.csproj b/docs/database/snippets/sql-server-integration/ExampleProject/ExampleProject.csproj
index 1dc4dd096c..0077099455 100644
--- a/docs/database/snippets/sql-server-integration/ExampleProject/ExampleProject.csproj
+++ b/docs/database/snippets/sql-server-integration/ExampleProject/ExampleProject.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
index 4826186058..1b630a33de 100644
--- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.AppHost/AspireSql.AppHost.csproj
@@ -12,8 +12,8 @@
-
-
-
+
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
+++ b/docs/database/snippets/tutorial/aspiresqldeployazure/AspireSql.ServiceDefaults/AspireSql.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
index e138523b05..d0a44b52a8 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.AppHost/AspireSQLEFCore.AppHost.csproj
@@ -8,8 +8,8 @@
65600b1c-627d-4255-a706-bf7e21108831
-
-
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore.ServiceDefaults/AspireSQLEFCore.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
index 658de70226..664d18d98c 100644
--- a/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
+++ b/docs/database/snippets/tutorial/aspiresqlefcore/AspireSQLEFCore/AspireSQLEFCore.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
index 70dcbbce98..e8ed5cb373 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDev.Hosting/MailDev.Hosting.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
index 024fced1e6..9679709b3f 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.AppHost/MailDevResource.AppHost.csproj
@@ -8,7 +8,7 @@
9c9bfb14-6706-4421-bc93-37cbaebe36d0
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
index d0e61075d7..c96daeee59 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
index bd69137c7b..03ac761304 100644
--- a/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
+++ b/docs/extensibility/snippets/MailDevResourceAndComponent/MailKit.Client/MailKit.Client.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
index 70dcbbce98..e8ed5cb373 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDev.Hosting/MailDev.Hosting.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
index 024fced1e6..9679709b3f 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.AppHost/MailDevResource.AppHost.csproj
@@ -8,7 +8,7 @@
9c9bfb14-6706-4421-bc93-37cbaebe36d0
-
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
index d0e61075d7..c96daeee59 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.NewsletterService/MailDevResource.NewsletterService.csproj
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailDevResource.ServiceDefaults/MailDevResource.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj
index bd69137c7b..03ac761304 100644
--- a/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj
+++ b/docs/extensibility/snippets/MailDevResourceWithCredentials/MailKit.Client/MailKit.Client.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
index 168a461beb..0fc8d58224 100644
--- a/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansAppHost/OrleansAppHost.csproj
@@ -8,10 +8,10 @@
88427062-d086-46c2-b35e-171d742a6fe0
-
-
-
-
+
+
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
index 93ce75df53..857cd20c64 100644
--- a/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansClient/OrleansClient.csproj
@@ -7,11 +7,11 @@
-
+
-
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansContracts/OrleansContracts.csproj b/docs/frameworks/snippets/Orleans/OrleansContracts/OrleansContracts.csproj
index af4847758c..3eba9ec987 100644
--- a/docs/frameworks/snippets/Orleans/OrleansContracts/OrleansContracts.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansContracts/OrleansContracts.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
index 58ef0c99a5..24e207bc66 100644
--- a/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansServer/OrleansServer.csproj
@@ -7,15 +7,15 @@
-
+
-
-
+
+
diff --git a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
index c17731bc66..8b4cc57c1d 100644
--- a/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
+++ b/docs/frameworks/snippets/Orleans/OrleansServiceDefaults/OrleansServiceDefaults.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/docs/fundamentals/dashboard/automation/aspire-dashboard/Aspire.Dashboard.ScreenCapture/Aspire.Dashboard.ScreenCapture.csproj b/docs/fundamentals/dashboard/automation/aspire-dashboard/Aspire.Dashboard.ScreenCapture/Aspire.Dashboard.ScreenCapture.csproj
index 47750f1822..62e08cd57c 100644
--- a/docs/fundamentals/dashboard/automation/aspire-dashboard/Aspire.Dashboard.ScreenCapture/Aspire.Dashboard.ScreenCapture.csproj
+++ b/docs/fundamentals/dashboard/automation/aspire-dashboard/Aspire.Dashboard.ScreenCapture/Aspire.Dashboard.ScreenCapture.csproj
@@ -11,10 +11,10 @@
-
-
-
-
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ApiService/AspireSample.ApiService.csproj b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ApiService/AspireSample.ApiService.csproj
index a4f25db84e..3f35c9abe0 100644
--- a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ApiService/AspireSample.ApiService.csproj
+++ b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ApiService/AspireSample.ApiService.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
index e44e347250..82d16fc6a4 100644
--- a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
+++ b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.AppHost/AspireSample.AppHost.csproj
@@ -16,9 +16,9 @@
-
-
-
+
+
+
diff --git a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
+++ b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.ServiceDefaults/AspireSample.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.Web/AspireSample.Web.csproj b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.Web/AspireSample.Web.csproj
index 52d1f28481..867f218c05 100644
--- a/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.Web/AspireSample.Web.csproj
+++ b/docs/fundamentals/dashboard/automation/aspire-dashboard/AspireSample/AspireSample.Web/AspireSample.Web.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
index 9339ecfc24..bda11c09c5 100644
--- a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.Web/AspireApp.Web.csproj b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.Web/AspireApp.Web.csproj
index 8b63c4bd17..f642f34503 100644
--- a/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.Web/AspireApp.Web.csproj
+++ b/docs/fundamentals/dashboard/snippets/DisableAI/AspireApp/AspireApp.Web/AspireApp.Web.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/fundamentals/snippets/annotations-overview/annotations-overview.csproj b/docs/fundamentals/snippets/annotations-overview/annotations-overview.csproj
index 773addfad8..7c389c1169 100644
--- a/docs/fundamentals/snippets/annotations-overview/annotations-overview.csproj
+++ b/docs/fundamentals/snippets/annotations-overview/annotations-overview.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.Web/AspireApp.Web.csproj b/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.Web/AspireApp.Web.csproj
index 8b63c4bd17..f642f34503 100644
--- a/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.Web/AspireApp.Web.csproj
+++ b/docs/fundamentals/snippets/custom-commands/AspireApp/AspireApp.Web/AspireApp.Web.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/fundamentals/snippets/custom-urls/AspireApp.Api/AspireApp.Api.csproj b/docs/fundamentals/snippets/custom-urls/AspireApp.Api/AspireApp.Api.csproj
index 9c4c52d485..206a72968b 100644
--- a/docs/fundamentals/snippets/custom-urls/AspireApp.Api/AspireApp.Api.csproj
+++ b/docs/fundamentals/snippets/custom-urls/AspireApp.Api/AspireApp.Api.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/custom-urls/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/custom-urls/AspireApp.AppHost/AspireApp.AppHost.csproj
index 31e82f31b0..42c26280d4 100644
--- a/docs/fundamentals/snippets/custom-urls/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/custom-urls/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj
index cdcf8924d2..660a740f02 100644
--- a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj
+++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.Api/AspireApp.Api.csproj
@@ -10,9 +10,9 @@
-
-
-
+
+
+
diff --git a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
index ea8c975ff3..752e5e9414 100644
--- a/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/http-commands/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -12,9 +12,9 @@
-
-
-
+
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
index d3f1004741..1a3ff01d8a 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -7,8 +7,8 @@
enable
-
-
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
index 9a2938e75e..3c5f8d7b51 100644
--- a/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
+++ b/docs/fundamentals/snippets/integrations/AspireApp/WorkerService/WorkerService.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
index aeafa125c5..b9bdf60676 100644
--- a/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.AppHost/Networking.AppHost.csproj
@@ -7,7 +7,7 @@
enable
-
+
diff --git a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
index 333efc3c14..94e98cf832 100644
--- a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend.Client/Networking.Frontend.Client.csproj
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
index 07058dac3d..e8efe6233e 100644
--- a/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.Frontend/Networking.Frontend/Networking.Frontend.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/networking/Networking.ServiceDefaults/Networking.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
index b8fad27ff2..a15b57b458 100644
--- a/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.ApiService/Parameters.ApiService.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
index 3a783c8e79..44d00d9233 100644
--- a/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.AppHost/Parameters.AppHost.csproj
@@ -7,8 +7,8 @@
enable
-
-
+
+
diff --git a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
index 47351b863b..7374b0803d 100644
--- a/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/params/Parameters.ServiceDefaults/Parameters.ServiceDefaults.csproj
@@ -11,13 +11,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.AppHost/AspireReferenceExpressions.AppHost.csproj b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.AppHost/AspireReferenceExpressions.AppHost.csproj
index a0ab6aee25..b2b8a13b48 100644
--- a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.AppHost/AspireReferenceExpressions.AppHost.csproj
+++ b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.AppHost/AspireReferenceExpressions.AppHost.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CatalogAPI/AspireReferenceExpressions.CatalogAPI.csproj b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CatalogAPI/AspireReferenceExpressions.CatalogAPI.csproj
index e1b3d6da32..4adad0c5ff 100644
--- a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CatalogAPI/AspireReferenceExpressions.CatalogAPI.csproj
+++ b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CatalogAPI/AspireReferenceExpressions.CatalogAPI.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CustomerAPI/AspireReferenceExpressions.CustomerAPI.csproj b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CustomerAPI/AspireReferenceExpressions.CustomerAPI.csproj
index e1b3d6da32..4adad0c5ff 100644
--- a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CustomerAPI/AspireReferenceExpressions.CustomerAPI.csproj
+++ b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.CustomerAPI/AspireReferenceExpressions.CustomerAPI.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.ServiceDefaults/AspireReferenceExpressions.ServiceDefaults.csproj b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.ServiceDefaults/AspireReferenceExpressions.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.ServiceDefaults/AspireReferenceExpressions.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/referenceexpressions/AspireReferenceExpressions.ServiceDefaults/AspireReferenceExpressions.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
index 451e07840b..65f682bdf9 100644
--- a/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
+++ b/docs/fundamentals/snippets/volumes/VolumeMounts.AppHost/VolumeMounts.AppHost.csproj
@@ -12,10 +12,10 @@
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
+++ b/docs/fundamentals/snippets/volumes/VolumeMounts.ServiceDefaults/VolumeMounts.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
index 4b5d8799fc..a49354db72 100644
--- a/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
+++ b/docs/get-started/snippets/PythonSample/PythonSample.AppHost/PythonSample.AppHost.csproj
@@ -11,8 +11,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
index 20b2642c02..8fd483346a 100644
--- a/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
+++ b/docs/get-started/snippets/PythonSample/PythonSample.ServiceDefaults/PythonSample.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/docs/get-started/upgrade-to-aspire-9.md b/docs/get-started/upgrade-to-aspire-13.md
similarity index 56%
rename from docs/get-started/upgrade-to-aspire-9.md
rename to docs/get-started/upgrade-to-aspire-13.md
index 0ccbd3be19..37bd8b0728 100644
--- a/docs/get-started/upgrade-to-aspire-9.md
+++ b/docs/get-started/upgrade-to-aspire-13.md
@@ -1,29 +1,69 @@
---
-title: Upgrade to Aspire 9.5.2
-description: Learn how to upgrade all your Aspire projects to Aspire 9.5.2.
-ms.date: 10/01/2025
+title: Upgrade to Aspire 13.0
+description: Learn how to upgrade all your Aspire projects to Aspire 13.0.
+ms.date: 11/11/2025
zone_pivot_groups: dev-environment
---
-# Upgrade to Aspire 9.5.2
+# Upgrade to Aspire 13.0
-In this article, you learn the steps involved in updating your existing Aspire projects to the latest version: Aspire 9.5.2. There are a few ways in which you can update your projects to Aspire 9.5.2:
+> [!CAUTION]
+> Aspire 13.0 is a major version release with breaking changes. Please review the [Breaking changes section](#breaking-changes) before upgrading.
-- Manually upgrade your projects to Aspire 9.5.2.
-- Use the **Upgrade Assistant** to upgrade your projects to Aspire 9.5.2.
+In this article, you learn the steps involved in updating your existing Aspire projects to the latest version: Aspire 13.0. The easiest way to upgrade to Aspire 13.0 is using the **Aspire CLI** with the `aspire update` command.
> [!TIP]
> If you're new to Aspire, there's no reason to upgrade anything. For more information, see [Aspire setup and tooling](../fundamentals/setup-tooling.md).
+> [!NOTE]
+> If you're upgrading from Aspire 8.x, you should first upgrade to Aspire 9.x using the Upgrade Assistant or manually, then upgrade to 13.0. Be sure to [remove the legacy Aspire workload](#remove-the-aspire-workload-first-time-upgrades-from-version-8-only) if upgrading from version 8.
+
## Prerequisites
-Before you upgrade your projects to Aspire 9.5.2, ensure that you have the following prerequisites:
+Before you upgrade your projects to Aspire 13.0, ensure that you have the following prerequisites:
- [Install the latest tooling](../fundamentals/setup-tooling.md).
- [Use the Aspire SDK](../fundamentals/dotnet-aspire-sdk.md).
-- If you have a version of Aspire older than 9.0, [remove it](#remove-the-aspire-workload-first-time-upgrades-from-version-8-only).
+- If you have a version of Aspire older than 9.0, [remove the legacy workload](#remove-the-aspire-workload-first-time-upgrades-from-version-8-only).
+
+## Upgrade using the Aspire CLI
+
+The recommended way to upgrade to Aspire 13.0 is using the Aspire CLI. This method handles all the necessary updates automatically.
+
+### Update the Aspire CLI
+
+First, update the Aspire CLI to the latest version:
+
+# [Bash](#tab/bash)
+
+```bash
+curl -sSL https://aspire.dev/install.sh | bash
+```
+
+# [PowerShell](#tab/powershell)
+
+```powershell
+Invoke-RestMethod -Uri "https://aspire.dev/install.ps1" | Invoke-Expression
+```
+
+---
+
+### Update your Aspire project
+
+Update your Aspire project using the `aspire update` command:
-## Upgrade the Aspire project templates
+```Aspire
+aspire update
+```
+
+This command will:
+
+- Update the `Aspire.AppHost.Sdk` version in your AppHost project.
+- Update all Aspire NuGet packages to version 13.0.
+- Handle dependency resolution automatically.
+- Support both regular projects and Central Package Management (CPM).
+
+### Update your Aspire templates
Install the latest Aspire project templates by running this command:
@@ -32,109 +72,169 @@ dotnet new install Aspire.ProjectTemplates
```
> [!TIP]
-> If you have the legacy Aspire workload installed, you need to pass the `--force` flag to overwrite the existing templates. For instructions on uninstalling the legacy workload, see [Remove the Aspire workload (first-time upgrades from version 8 only)](#remove-the-aspire-workload-first-time-upgrades-from-version-8-only).
+> If you have the legacy Aspire workload installed, you need to pass the `--force` flag to overwrite the existing templates. For instructions on uninstalling the legacy workload, see [Remove the Aspire workload](#remove-the-aspire-workload-first-time-upgrades-from-version-8-only).
-## Manually upgrade a solution to Aspire 9.5.2
+## AppHost template updates
-To upgrade your projects to Aspire 9.5.2, you need to update your project files. The following steps guide you through the process:
-
-- Edit your [AppHost](xref:dotnet/aspire/app-host) project file to use the new Aspire 9.5.2 SDK (`Aspire.AppHost.Sdk`).
-- Update the NuGet packages in your project files to the latest versions.
-- Adjust your _Program.cs_ file to use the new APIs and remove any obsolete APIs.
-
-### Edit your AppHost project file
+Aspire 13.0 introduces a simplified AppHost project template structure. The SDK now encapsulates the `Aspire.Hosting.AppHost` package, resulting in cleaner project files.
-To upgrade your AppHost project to Aspire 9.5.2, you need to update your project file to use the new [📦 Aspire.AppHost.Sdk](https://www.nuget.org/packages/Aspire.AppHost.Sdk):
+### Before (9.x)
-```diff
+```xml
-+
+
Exe
- net8.0
+ net9.0
enable
enable
- true
- 0afc20a6-cd99-4bf7-aae1-1359b0d45189
+ 1bf2ca25-7be4-4963-8782-c53a74e10ad9
+
+
+
+
+
+
```
-### Optionally upgrade the target framework moniker (TFM)
-
-Aspire 9.5.2 runs on .NET 9.0, but you can also run it on .NET 8.0. In other words, just because you're using the Aspire SDK, and pointing to version 9.5.2 packages, you can still target .NET 8.0. If you want to run your Aspire 9.5.2 project on .NET 9.0, you need to update the `TargetFramework` property in your project file:
+### After (13.0)
-```diff
-
-
-
+```xml
+
Exe
-- net8.0
-+ net9.0
+ net10.0
enable
enable
- true
- 0afc20a6-cd99-4bf7-aae1-1359b0d45189
+ 1bf2ca25-7be4-4963-8782-c53a74e10ad9
-
+
+
+
+
+
+
```
-For more information on TFMs, see [Target frameworks in SDK-style projects: Latest versions](/dotnet/standard/frameworks#latest-versions).
+### Key changes
+
+- **Simplified SDK declaration**: The SDK is now specified directly in the `` tag with its version: `Sdk="Aspire.AppHost.Sdk/13.0.0"`.
+- **No explicit Aspire.Hosting.AppHost reference**: The SDK now automatically includes this package, reducing boilerplate.
+- **Cleaner structure**: Removed the separate `` element and the `Microsoft.NET.Sdk` base SDK.
+- **Target framework**: Updated from `net9.0` to `net10.0`.
+
+The `aspire update` command automatically handles this migration when upgrading from 9.x to 13.0.
+
+## Single-file AppHosts
+
+> [!TIP]
+> For an even simpler setup, Aspire 13.0 also supports single-file AppHosts that don't require a project file at all. Single-file AppHosts are perfect for quick prototypes and learning scenarios.
+
+The same project as a file-based AppHost:
+
+**apphost.cs**
+
+```csharp
+#:sdk Aspire.AppHost.Sdk@13.0.0
+#:package Aspire.Hosting.Redis@13.0.0
+
+var builder = DistributedApplication.CreateBuilder(args);
+
+var cache = builder.AddRedis("cache");
+var api = builder.AddProject("apiservice", "../MyApi")
+ .WithReference(cache);
+
+builder.Build().Run();
+```
+
+No project file needed - just a single _.cs_ file with package references declared using `#:package` directives.
+
+> [!NOTE]
+> Single-file AppHosts are not currently supported in Visual Studio. Use Visual Studio Code or the command line to work with single-file AppHosts.
-### Overall AppHost project differences
+## Manually upgrade a solution to Aspire 13.0
-If you followed all of the preceding steps, your AppHost project file should look like this:
+If you prefer to manually upgrade your projects, you can update your project files directly. The following steps guide you through the process:
+
+- Edit your [AppHost](xref:dotnet/aspire/app-host) project file to use the new Aspire 13.0 SDK (`Aspire.AppHost.Sdk`).
+- Update the NuGet packages in your project files to the latest versions.
+- Adjust your code to address any breaking changes.
+
+### Edit your AppHost project file
+
+To upgrade your AppHost project to Aspire 13.0, update your project file to use the new SDK declaration and remove the explicit `Aspire.Hosting.AppHost` package reference:
```diff
-
+-
++
-+
+-
Exe
-- net8.0
-+ net9.0
+- net9.0
++ net10.0
enable
enable
- true
+- true
0afc20a6-cd99-4bf7-aae1-1359b0d45189
--
-+
+-
++
```
-The changes include the addition of the `Aspire.AppHost.Sdk`, the update of the `TargetFramework` property to `net9.0`, and the update of the `Aspire.Hosting.AppHost` package to version `9.5.2`.
+### Update the NuGet packages
-### Adjust your _Program.cs_ file
+To take advantage of the latest updates in your Aspire solution, update all NuGet packages to version `13.0.0`.
-> [!IMPORTANT]
-> If you're still seeing a _Program.cs_, you could change the name of this file to match the templates. Moving forward, an AppHost project contains an _AppHost.cs_ file that acts as the entry point.
+:::zone pivot="visual-studio"
+
+:::image type="content" source="media/visual-studio-update-nuget.png" lightbox="media/visual-studio-update-nuget.png" alt-text="Visual Studio: Update all NuGet packages for the Aspire solution.":::
+
+:::zone-end
+:::zone pivot="vscode,dotnet-cli"
+
+To update your project packages, use the following .NET CLI command to update Aspire packages to version `13.0.0`:
+
+```dotnetcli
+dotnet add package Aspire.Hosting.Redis --version 13.0.0
+```
+
+When a package reference already exists, the `dotnet add package` command updates the reference to the specified version. For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package).
+
+:::zone-end
-With the introduction of Aspire 9.5, there are some _breaking changes_. Some APIs were originally marked as experimental (with the ) and are now removed, while other APIs are now attributed as with details on new replacement APIs. You need to adjust your _Program.cs_ file (and potentially other affected APIs) to use the new APIs. If you're using the Upgrade Assistant to upgrade your projects, it automatically adjusts your _Program.cs_ file in most cases.
+> [!TIP]
+> You'll want to also update the NuGet packages in your other projects to the latest versions.
+
+## Breaking changes
+
+With the introduction of Aspire 13.0, there are some _breaking changes_. You need to adjust your code to address these changes.
-For the complete list of breaking changes in Aspire 9.5.2, see [Breaking changes in Aspire 9.5](../compatibility/9.5/index.md).
+For the complete list of breaking changes in Aspire 13.0, see [Breaking changes in Aspire 13.0](../compatibility/13.0/index.md).
> [!IMPORTANT]
-> Be sure to review breaking changes for all versions of Aspire after the one you're upgrading from. For example, if you're upgrading from Aspire 9.0, you must address breaking changes for versions [9.1](../compatibility/9.1/index.md), [9.2](../compatibility/9.2/index.md), [9.3](../compatibility/9.3/index.md), [9.4](../compatibility/9.4/index.md), and [9.5](../compatibility/9.5/index.md).
+> Be sure to review breaking changes for all versions of Aspire after the one you're upgrading from. For example, if you're upgrading from Aspire 9.0, you must address breaking changes for all versions between 9.0 and 13.0.
## Use the Upgrade Assistant
@@ -143,11 +243,11 @@ The [Upgrade Assistant](/dotnet/core/porting/upgrade-assistant-overview) is a to
- [The Visual Studio extension version](/dotnet/core/porting/upgrade-assistant-install#visual-studio-extension).
- [The .NET CLI global tool version](/dotnet/core/porting/upgrade-assistant-install#net-global-tool).
-Regardless of how you install the Upgrade Assistant, you can use it to upgrade your Aspire projects to Aspire 9.5.2.
+Regardless of how you install the Upgrade Assistant, you can use it to upgrade your Aspire projects to Aspire 13.0.
:::zone pivot="visual-studio"
-To upgrade the Aspire AppHost project to Aspire 9.5.2 with Visual Studio, right-click the project in **Solution Explorer** and select **Upgrade**.
+To upgrade the Aspire AppHost project to Aspire 13.0 with Visual Studio, right-click the project in **Solution Explorer** and select **Upgrade**.
> [!IMPORTANT]
> If the **Upgrade Assistant** isn't already installed, you'll be prompted to install it.
@@ -226,64 +326,16 @@ Complete: 3 succeeded, 0 failed, 7 skipped.
:::zone-end
-### Update the NuGet packages
-
-To take advantage of the latest updates in your Aspire solution, update all NuGet packages to version `9.5.2`.
-
-:::zone pivot="visual-studio"
-
-:::image type="content" source="media/visual-studio-update-nuget.png" lightbox="media/visual-studio-update-nuget.png" alt-text="Visual Studio: Update all NuGet packages for the Aspire solution.":::
-
-:::zone-end
-:::zone pivot="vscode,dotnet-cli"
-
-To update your AppHost project, use the following .NET CLI command to update the `Aspire.Hosting.AppHost` package to version `9.5.2`:
-
-```dotnetcli
-dotnet add package Aspire.Hosting.AppHost --version 9.5.2
-```
-
-When a package reference already exists, the `dotnet add package` command updates the reference to the specified version. For more information, see [dotnet add package](/dotnet/core/tools/dotnet-add-package).
-
-:::zone-end
-
-With the AppHost project updated, your project file should look like this:
-
-```diff
-
-
-
-
-
- Exe
- net8.0
- enable
- enable
- true
- 0afc20a6-cd99-4bf7-aae1-1359b0d45189
-
-
-
--
-+
-
-
-
-```
-
-> [!TIP]
-> You'll want to also update the NuGet packages in your other projects to the latest versions.
-
## Remove the Aspire workload (first-time upgrades from version 8 only)
-If you're upgrading from Aspire 8 to Aspire 9 for the first time, you need to remove the legacy workload. This step is not needed for upgrades between Aspire 9 versions (such as from 9.4.0 to 9.5.2).
+If you're upgrading from Aspire 8 to Aspire 9 or later for the first time, you need to remove the legacy workload. This step is not needed for upgrades between Aspire 9 versions or from Aspire 9 to 13.
-Previously the **aspire workload** was required to create and run Aspire projects. But, with Aspire 9 the workload is no longer required and should be removed from your .NET environment.
+Previously the **aspire workload** was required to create and run Aspire projects. But, with Aspire 9 and later the workload is no longer required and should be removed from your .NET environment.
> [!IMPORTANT]
-> You must remove Aspire 8 (the **aspire workload**) to enable the Aspire 9 templates.
+> You must remove Aspire 8 (the **aspire workload**) to enable the Aspire 9+ templates.
-01. Find the installation source by opening a terminal and running the `dotnet workload list` command.
+1. Find the installation source by opening a terminal and running the `dotnet workload list` command.
The preceding command lists the workloads installed in the .NET environment. The method used to install Aspire is listed under the **Installation Source** column of the output, and is either _VS_ for Visual Studio or _SDK_ for the .NET SDK. For example, the following snippet indicates that Visual Studio was used to install Aspire:
@@ -293,16 +345,16 @@ Previously the **aspire workload** was required to create and run Aspire project
aspire 8.2.2/8.0.100 VS 17.14.36109.1
```
-01. Remove Aspire 8.
+1. Remove Aspire 8.
- If the **Installation Source** starts with _VS_:
- 01. Open the **Visual Studio Installer** app.
- 01. **Modify** the installation instance of Visual Studio.
- 01. Select **Individual Components**.
- 01. Search for `aspire`.
- 01. Unselect **Aspire SDK**.
- 01. Select the **Modify** button to apply the changes.
+ 1. Open the **Visual Studio Installer** app.
+ 1. **Modify** the installation instance of Visual Studio.
+ 1. Select **Individual Components**.
+ 1. Search for `aspire`.
+ 1. Unselect **Aspire SDK**.
+ 1. Select the **Modify** button to apply the changes.
- If the **Installation Source** starts with _SDK_, run `dotnet workload uninstall aspire` to remove Aspire.
diff --git a/docs/real-time/snippets/signalr/SignalR.ApiService/SignalR.ApiService.csproj b/docs/real-time/snippets/signalr/SignalR.ApiService/SignalR.ApiService.csproj
index 2bf536fe25..030eb63e9a 100644
--- a/docs/real-time/snippets/signalr/SignalR.ApiService/SignalR.ApiService.csproj
+++ b/docs/real-time/snippets/signalr/SignalR.ApiService/SignalR.ApiService.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj b/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj
index 52f38c87c2..9b246cfee2 100644
--- a/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj
+++ b/docs/real-time/snippets/signalr/SignalR.AppHost/SignalR.AppHost.csproj
@@ -12,8 +12,8 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj b/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj
+++ b/docs/real-time/snippets/signalr/SignalR.ServiceDefaults/SignalR.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/real-time/snippets/signalr/SignalR.Web/SignalR.Web.csproj b/docs/real-time/snippets/signalr/SignalR.Web/SignalR.Web.csproj
index a861cb183e..734e05f542 100644
--- a/docs/real-time/snippets/signalr/SignalR.Web/SignalR.Web.csproj
+++ b/docs/real-time/snippets/signalr/SignalR.Web/SignalR.Web.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/snippets/azure/AppHost/AppHost.csproj b/docs/snippets/azure/AppHost/AppHost.csproj
index 27b4a862c7..0e70800534 100644
--- a/docs/snippets/azure/AppHost/AppHost.csproj
+++ b/docs/snippets/azure/AppHost/AppHost.csproj
@@ -12,25 +12,25 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/snippets/azure/WorkerService/WorkerService.csproj b/docs/snippets/azure/WorkerService/WorkerService.csproj
index da265bdaf4..1ae783bc1f 100644
--- a/docs/snippets/azure/WorkerService/WorkerService.csproj
+++ b/docs/snippets/azure/WorkerService/WorkerService.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj
index f282ae248a..0102b86e68 100644
--- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj
+++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.AppHost/AspireStorage.AppHost.csproj
@@ -13,7 +13,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj
index 233173d757..8fd483346a 100644
--- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj
+++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.ServiceDefaults/AspireStorage.ServiceDefaults.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj
index 724bea4118..1ac39bc2ef 100644
--- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj
+++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.Web/AspireStorage.Web.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj
index cbf71ba4cc..86e8976119 100644
--- a/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj
+++ b/docs/storage/snippets/tutorial/AspireStorage/AspireStorage.WorkerService/AspireStorage.WorkerService.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/testing/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/testing/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
index 2c792482ca..b65b94731d 100644
--- a/docs/testing/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/testing/snippets/testing/mstest/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -12,6 +12,7 @@
-
+
+
\ No newline at end of file
diff --git a/docs/testing/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/testing/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/testing/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/testing/snippets/testing/mstest/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/testing/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj b/docs/testing/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
index 4302377ee2..113bf1f953 100644
--- a/docs/testing/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
+++ b/docs/testing/snippets/testing/mstest/AspireApp.Tests/AspireApp.Tests.csproj
@@ -14,9 +14,9 @@
-
-
-
+
+
+
diff --git a/docs/testing/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj b/docs/testing/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
index a18f8c6d28..30d38d83e1 100644
--- a/docs/testing/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
+++ b/docs/testing/snippets/testing/xunit/AspireApp.AppHost/AspireApp.AppHost.csproj
@@ -12,6 +12,7 @@
-
+
+
\ No newline at end of file
diff --git a/docs/testing/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj b/docs/testing/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
index f5b719eec1..8fd483346a 100644
--- a/docs/testing/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
+++ b/docs/testing/snippets/testing/xunit/AspireApp.ServiceDefaults/AspireApp.ServiceDefaults.csproj
@@ -10,13 +10,13 @@
-
-
+
+
-
-
-
+
+
+
diff --git a/docs/testing/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj b/docs/testing/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
index 99d0ea0793..ffc9b27532 100644
--- a/docs/testing/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
+++ b/docs/testing/snippets/testing/xunit/AspireApp.Tests/AspireApp.Tests.csproj
@@ -10,10 +10,10 @@
-
+
-
-
+
+
diff --git a/docs/toc.yml b/docs/toc.yml
index 01f3fd0cad..b96f047811 100644
--- a/docs/toc.yml
+++ b/docs/toc.yml
@@ -36,8 +36,8 @@ items:
href: get-started/dev-containers.md
- name: What's new in Aspire 13
href: https://aspire.dev/whats-new/aspire-13/
- - name: Upgrade to Aspire 9.5.2
- href: get-started/upgrade-to-aspire-9.md
+ - name: Upgrade to Aspire 13.0
+ href: get-started/upgrade-to-aspire-13.md
- name: AppHost
items:
diff --git a/docs/troubleshooting/snippets/hosting-startup-not-supported/hosting-startup-not-supported.csproj b/docs/troubleshooting/snippets/hosting-startup-not-supported/hosting-startup-not-supported.csproj
index d7b0a087ed..6ea8b05ad1 100644
--- a/docs/troubleshooting/snippets/hosting-startup-not-supported/hosting-startup-not-supported.csproj
+++ b/docs/troubleshooting/snippets/hosting-startup-not-supported/hosting-startup-not-supported.csproj
@@ -11,7 +11,7 @@
-
+