Skip to content

Conversation

Copy link

Copilot AI commented Nov 12, 2025

Upgrades project from .NET 9 to .NET 10 and Aspire 9.5 to 13.0.

SDK & Runtime

  • Updated to .NET 10.0.100 SDK and net10.0 TFM
  • Aspire.AppHost.Sdk: Correctly set to version 9.5.2 (SDK version is separate from package versions)
  • Updated Docker base images and installation scripts
  • Updated GitHub Actions workflows
  • Updated VSCode launch.json debug paths from net9.0 to net10.0

Aspire 13 Breaking Changes

  • Replaced Aspire.Hosting.NodeJsAspire.Hosting.JavaScript
  • Replaced AddNpmApp()AddJavaScriptApp() (supports npm/yarn/pnpm auto-detection)
  • Replaced WithEndpoint()WithHttpEndpoint()
  • KibanaConfigWriterHook: Temporarily disabled with conditional compilation (#if FALSE) and marked with TODO for migration to Aspire 13's IDistributedApplicationEventingSubscriber eventing model

.NET 10 API Changes

  • ForwardedHeadersOptions.KnownNetworksKnownIPNetworks
  • Removed package references now included in framework:
    • System.Net.Http, System.Text.RegularExpressions, System.Text.Encodings.Web
    • Microsoft.Extensions.Diagnostics.HealthChecks (now implicit in ASP.NET Core)

Package Updates

  • All Microsoft.Extensions.* and Microsoft.AspNetCore.* packages: 9.0.10 → 10.0.0
  • All Aspire packages: 9.5.2 → 13.0.0

Test Fixes

  • Updated AppWebHostFactory to use fully qualified Exceptionless.Web.Program class reference for .NET 10 compatibility

Known Issues

  • KibanaConfigWriterHook requires migration to Aspire 13's new eventing model and is currently disabled. See TODO comments in the code for migration guide references.

Example Changes

// Before (Aspire 9.5)
builder.AddNpmApp("Web", "../../src/Exceptionless.Web/ClientApp", "dev")
    .WithEndpoint(port: 5173, targetPort: 5173, scheme: "http", env: "PORT");

// After (Aspire 13)
builder.AddJavaScriptApp("Web", "../../src/Exceptionless.Web/ClientApp", "dev")
    .WithHttpEndpoint(port: 5173, env: "PORT");
Original prompt

This section details on the original issue you should resolve

<issue_title>Upgrade to .net 10 and aspire 13</issue_title>
<issue_description>Upgrade to net10 and aspire 13. https://aspire.dev/whats-new/aspire-13/

We should also comment here with what improvements we can now take advantage of with the latest asp.net features.</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@CLAassistant
Copy link

CLAassistant commented Nov 12, 2025

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ niemyjski
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

Copilot AI and others added 3 commits November 12, 2025 18:01
Co-authored-by: ejsmith <282584+ejsmith@users.noreply.github.com>
Co-authored-by: ejsmith <282584+ejsmith@users.noreply.github.com>
Co-authored-by: ejsmith <282584+ejsmith@users.noreply.github.com>
@niemyjski
Copy link
Member

@copilot fix the kibana todo, remove the upgrade notes file and also look for other things to upgrade like the vscode tasks/launch might have debug paths to a net9 folder.

Copilot AI changed the title [WIP] Upgrade to .NET 10 and Aspire 13 Upgrade to .NET 10 and Aspire 13 Nov 12, 2025
Copilot AI requested a review from ejsmith November 12, 2025 18:21
Co-authored-by: niemyjski <1020579+niemyjski@users.noreply.github.com>
Copy link
Author

Copilot AI commented Nov 12, 2025

@copilot fix the kibana todo, remove the upgrade notes file and also look for other things to upgrade like the vscode tasks/launch might have debug paths to a net9 folder.

Fixed in commit a66d929:

  1. Kibana TODO fixed: Implemented using Aspire 13's EnvironmentCallbackAnnotation approach instead of the deprecated lifecycle hooks. The new ConfigureElasticsearchHosts extension method properly configures the ELASTICSEARCH_HOSTS environment variable for Kibana.

  2. Upgrade notes removed: Deleted UPGRADE_NOTES.md

  3. VSCode launch.json updated: Changed all debug paths from net9.0 to net10.0 for Aspire, Web, and Job configurations.

Build verified successfully. ✅

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • aka.ms
    • Triggering command: curl -I -sSL --retry 5 --retry-delay 2 --connect-timeout 15 REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copy link
Member

@niemyjski niemyjski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Please fix these comments, revert, google and make sure the implementation is correct. If you are not 1000% sure then just leave a todo and let the build fail to compile if nessesary.

Co-authored-by: niemyjski <1020579+niemyjski@users.noreply.github.com>
Copy link
Author

Copilot AI commented Nov 12, 2025

@copilot Please fix these comments, revert, google and make sure the implementation is correct. If you are not 1000% sure then just leave a todo and let the build fail to compile if nessesary.

Fixed in commit c19bb00:

  • Corrected Aspire.AppHost.Sdk version to 9.5.2
  • Reverted Kibana and Elasticsearch changes
  • Added comprehensive TODO comments with references to Aspire 13 migration guide
  • Disabled KibanaConfigWriterHook with conditional compilation until proper migration

Build succeeds ✅

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • aka.ms
    • Triggering command: curl -I -sSL --retry 5 --retry-delay 2 --connect-timeout 15 REDACTED (dns block)
  • aspire.dev
    • Triggering command: curl -s REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Updates various package dependencies across multiple projects.

This includes updates to FluentValidation, Serilog.Sinks.Console,
OpenTelemetry, Swashbuckle.AspNetCore.Newtonsoft,
FluentRest.NewtonsoftJson, and Microsoft.NET.Test.Sdk.

Also adds System.Net.Http and System.Text.RegularExpressions
to resolve vulnerability warnings related to transitive dependencies.
@niemyjski
Copy link
Member

Currently blocked on unchase/Unchase.Swashbuckle.AspNetCore.Extensions#43

We may want to consider doing all the work to drop it, but was looking for a quick upgrade: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/openapi/overview?view=aspnetcore-10.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to .net 10 and aspire 13

4 participants