Loading...
Loading...
Compare original and translation side by side
net10.0net10.0TargetFrameworknet9.0net10.0System.Linq.AsyncSystem.Linq.AsyncEnumerableTargetFrameworknet9.0net10.0System.Linq.AsyncSystem.Linq.AsyncEnumerablenet10.0migrate-dotnet8-to-dotnet9net9.0net9.0net10.0net10.0migrate-dotnet8-to-dotnet9net9.0net9.0net10.0| Input | Required | Description |
|---|---|---|
| Project or solution path | Yes | The |
| Build command | No | How to build (e.g., |
| Test command | No | How to run tests (e.g., |
| Project type hints | No | Whether the project uses ASP.NET Core, EF Core, WinForms, WPF, containers, etc. Auto-detect from PackageReferences and SDK attributes if not provided |
| 输入项 | 是否必填 | 描述 |
|---|---|---|
| 项目或解决方案路径 | 是 | 要迁移的 |
| 构建命令 | 否 | 构建方式(如 |
| 测试命令 | 否 | 测试运行方式(如 |
| 项目类型提示 | 否 | 项目是否使用ASP.NET Core、EF Core、WinForms、WPF、容器等。未提供时从PackageReferences和SDK属性自动检测 |
Answer directly from the loaded reference documents. Do not search the filesystem or fetch web pages for breaking change information — the references contain the authoritative details. Focus on identifying which breaking changes apply and providing concrete fixes. Exception: If you suspect a security vulnerability (CVE) may apply to the project's dependencies, check for published security advisories — the reference documents may not cover post-publication CVEs.Commit strategy: Commit at each logical boundary — after updating the TFM (Step 2), after resolving build errors (Step 3), after addressing behavioral changes (Step 4), and after updating infrastructure (Step 5). This keeps each commit focused and reviewable.
直接从加载的参考文档中获取答案。不要搜索文件系统或网页获取重大变更信息——参考文档包含权威细节。重点识别适用的重大变更并提供具体修复方案。例外情况:如果怀疑项目依赖项存在安全漏洞(CVE),请检查已发布的安全公告——参考文档可能未涵盖发布后的CVE。提交策略:在每个逻辑阶段提交代码——更新TFM后(步骤2)、解决构建错误后(步骤3)、处理行为变更后(步骤4)、更新基础设施后(步骤5)。这样每个提交都聚焦明确,便于评审。
.sln.slnx.csprojdotnet --versionMicrosoft.NET.Sdk.WebMicrosoft.NET.Sdk.WindowsDesktop<UseWPF><UseWindowsForms>Microsoft.EntityFrameworkCore.*Microsoft.Data.SqliteMicrosoft.Extensions.HostingSystem.Linq.AsyncSystem.Text.Jsondotnet build --no-incrementalbinobjnet9.0.sln.slnx.csprojdotnet --versionMicrosoft.NET.Sdk.WebMicrosoft.NET.Sdk.WindowsDesktop<UseWPF><UseWindowsForms>Microsoft.EntityFrameworkCore.*Microsoft.Data.SqliteMicrosoft.Extensions.HostingSystem.Linq.AsyncSystem.Text.Jsonnet9.0dotnet build --no-incrementalbinobj.csprojDirectory.Build.props<TargetFramework>net9.0</TargetFramework><TargetFramework>net10.0</TargetFramework>net10.0<TargetFrameworks>net9.0Microsoft.Extensions.*Microsoft.AspNetCore.*Microsoft.EntityFrameworkCore.*Directory.Packages.propsdotnet restore<PackageReference><PackageReference>Versiondotnet restore.csprojDirectory.Build.props<TargetFramework>net9.0</TargetFramework><TargetFramework>net10.0</TargetFramework><TargetFrameworks>net10.0net9.0Microsoft.Extensions.*Microsoft.AspNetCore.*Microsoft.EntityFrameworkCore.*Directory.Packages.propsdotnet restore<PackageReference><PackageReference>Versiondotnet restore| If the project uses… | Load reference |
|---|---|
| Any .NET 10 project | |
| Any .NET 10 project | |
| Any .NET 10 project | |
| ASP.NET Core | |
| Entity Framework Core | |
| Cryptography APIs | |
| Microsoft.Extensions.Hosting, BackgroundService, configuration | |
| System.Text.Json, XmlSerializer, HttpClient, MailAddress, Uri | |
| Windows Forms or WPF | |
| Docker containers, single-file apps, native interop | |
System.Linq.AsyncSystem.Linq.Async<ExcludeAssets>compile</ExcludeAssets>SelectAwaitSelectSYSLIB0058SslStream.KeyExchangeAlgorithmCipherAlgorithmHashAlgorithmNegotiatedCipherSuiteSYSLIB0059SystemEvents.EventsThreadShutdownAppDomain.ProcessExitSYSLIB0060Rfc2898DeriveBytesRfc2898DeriveBytes.Pbkdf2SYSLIB0061Queryable.MaxByMinByIComparer<TSource>IComparer<TKey>SYSLIB0062XsltSettings.EnableScriptfieldfieldgetsetinitfieldfieldthis.fieldValue@fieldreferences/csharp-compiler-dotnet9to10.mdextensionextension@extension.Contains()MemoryExtensions.ContainsEnumerable.ContainsEnumerable.ReverseSpanIEnumerable<T>.AsEnumerable()references/csharp-compiler-dotnet9to10.mdWebHostBuilderIWebHostWebHostHost.CreateDefaultBuilderWebApplication.CreateBuilderIActionContextAccessorActionContextAccessorWithOpenApiIncludeOpenAPIAnalyzersIPNetworkForwardedHeadersOptions.KnownNetworksMicrosoft.Extensions.ApiDescription.ClientMicrosoft.OpenApiMicrosoft.AspNetCore.OpenApi 10.0Microsoft.OpenApiOpenApiStringOpenApiAnyJsonNodeOpenApiSecurityScheme.ReferenceOpenApiSecuritySchemeReferenceOpenApiSchema.Nullablereferences/aspnet-core-dotnet9to10.mddotnet new sln--format slndnx.ps1project.jsondotnet restorereferences/efcore-dotnet9to10.mdExecuteUpdateAsyncIDiscriminatorPropertySetConventionIRelationalCommandDiagnosticsLoggerlogCommandTextMenuItemContextMenuHtmlElement.InsertAdjacentElementColumnDefinitionsRowDefinitionsMLDsaSlhDsaSecretKeyPrivateKeyExportMLDsaSecretKeyExportMLDsaPrivateKeySecretKeySizeInBytesPrivateKeySizeInBytesRfc2898DeriveBytesRfc2898DeriveBytes.Pbkdf2(password, salt, iterations, hashAlgorithm, outputLength)CoseSigner.KeyX509Certificate.GetKeyAlgorithmParameters()PublicKey.EncodedParametersCLR_OPENSSL_VERSION_OVERRIDEDOTNET_OPENSSL_VERSION_OVERRIDE| 项目使用的技术 | 加载的参考文档 |
|---|---|
| 任何.NET 10项目 | |
| 任何.NET 10项目 | |
| 任何.NET 10项目 | |
| ASP.NET Core | |
| Entity Framework Core | |
| 加密API | |
| Microsoft.Extensions.Hosting、BackgroundService、配置 | |
| System.Text.Json、XmlSerializer、HttpClient、MailAddress、Uri | |
| Windows Forms或WPF | |
| Docker容器、单文件应用、本地互操作 | |
System.Linq.AsyncSystem.Linq.Async<ExcludeAssets>compile</ExcludeAssets>SelectAwaitSelectSYSLIB0058NegotiatedCipherSuiteSslStream.KeyExchangeAlgorithmCipherAlgorithmHashAlgorithmSYSLIB0059AppDomain.ProcessExitSystemEvents.EventsThreadShutdownSYSLIB0060Rfc2898DeriveBytes.Pbkdf2Rfc2898DeriveBytesSYSLIB0061IComparer<TKey>Queryable.MaxByMinByIComparer<TSource>SYSLIB0062XsltSettings.EnableScriptfieldgetsetinitfieldfieldthis.fieldfieldValue@fieldreferences/csharp-compiler-dotnet9to10.mdextensionextension@extension.Contains()MemoryExtensions.ContainsEnumerable.ContainsEnumerable.ReverseSpanIEnumerable<T>.AsEnumerable()references/csharp-compiler-dotnet9to10.mdWebHostBuilderIWebHostWebHostHost.CreateDefaultBuilderWebApplication.CreateBuilderIActionContextAccessorActionContextAccessorWithOpenApiIncludeOpenAPIAnalyzersIPNetworkForwardedHeadersOptions.KnownNetworksMicrosoft.Extensions.ApiDescription.ClientMicrosoft.OpenApiMicrosoft.AspNetCore.OpenApi 10.0Microsoft.OpenApiOpenApiStringOpenApiAnyJsonNodeOpenApiSecurityScheme.ReferenceOpenApiSecuritySchemeReferenceOpenApiSchema.Nullablereferences/aspnet-core-dotnet9to10.mddotnet new sln--format slndnx.ps1dotnet restoreproject.jsonreferences/efcore-dotnet9to10.mdExecuteUpdateAsyncIDiscriminatorPropertySetConventionIRelationalCommandDiagnosticsLoggerlogCommandTextMenuItemContextMenuHtmlElement.InsertAdjacentElementColumnDefinitionsRowDefinitionsMLDsaSlhDsaSecretKeyPrivateKeyExportMLDsaSecretKeyExportMLDsaPrivateKeySecretKeySizeInBytesPrivateKeySizeInBytesRfc2898DeriveBytesRfc2898DeriveBytes.Pbkdf2(password, salt, iterations, hashAlgorithm, outputLength)CoseSigner.KeyX509Certificate.GetKeyAlgorithmParameters()PublicKey.EncodedParametersCLR_OPENSSL_VERSION_OVERRIDEDOTNET_OPENSSL_VERSION_OVERRIDEAppDomain.ProcessExitAssemblyLoadContext.UnloadingPosixSignalRegistration.Create(PosixSignal.SIGTERM, _ => Environment.Exit(0))awaitStartAsyncIHostedLifecycleServicenullnullGetDateTimeOffsetDateTimeOffsetGetDateTimeDateTimeKind.UtcAppContext.SetSwitch("Microsoft.Data.Sqlite.Pre10TimeZoneHandling", true).Contains()UseParameterizedCollectionMode(ParameterTranslationMode.Parameter)jsonnvarchar(max)HasColumnType("nvarchar(max)")$type$id$refInvalidOperationException[JsonIgnore]BufferedStream.WriteByteFlush()DriveInfo.DriveFormatDirectoryControlDllImportSearchPath.AssemblyDirectoryMailAddressUriUriXmlSerializer[Obsolete][XmlIgnore]dotnet restoredotnet watchdotnetreferences/sdk-msbuild-dotnet9to10.mdStatusStripTreeViewDynamicResourceAppDomain.ProcessExitAssemblyLoadContext.UnloadingPosixSignalRegistration.Create(PosixSignal.SIGTERM, _ => Environment.Exit(0))awaitStartAsyncIHostedLifecycleServicenullnullGetDateTimeOffsetDateTimeOffsetGetDateTimeDateTimeKind.UtcAppContext.SetSwitch("Microsoft.Data.Sqlite.Pre10TimeZoneHandling", true).Contains()UseParameterizedCollectionMode(ParameterTranslationMode.Parameter)jsonnvarchar(max)HasColumnType("nvarchar(max)")$type$id$refInvalidOperationException[JsonIgnore]BufferedStream.WriteByteFlush()DriveInfo.DriveFormatDirectoryControlDllImportSearchPath.AssemblyDirectoryMailAddressUriUriXmlSerializer[Obsolete][XmlIgnore]dotnet restoredotnet watchdotnetreferences/sdk-msbuild-dotnet9to10.mdStatusStripTreeViewDynamicResource# Before
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
FROM mcr.microsoft.com/dotnet/aspnet:9.0
# After
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
FROM mcr.microsoft.com/dotnet/aspnet:10.0global.json{
"sdk": {
"version": "10.0.100"
}
}DOTNET_OPENSSL_VERSION_OVERRIDEDOTNET_ICU_VERSION_OVERRIDENUGET_ENABLE_ENHANCED_HTTP_RETRYdotnet new sln--format sln# 之前
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
FROM mcr.microsoft.com/dotnet/aspnet:9.0
# 之后
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
FROM mcr.microsoft.com/dotnet/aspnet:10.0global.json{
"sdk": {
"version": "10.0.100"
}
}DOTNET_OPENSSL_VERSION_OVERRIDEDOTNET_ICU_VERSION_OVERRIDENUGET_ENABLE_ENHANCED_HTTP_RETRYdotnet new sln--format slndotnet build --no-incrementaldotnet test.Contains()SslStream[XmlIgnore][JsonIgnore]UritrueApplication Namedotnet restoredotnet build --no-incrementaldotnet test.Contains()SslStream[XmlIgnore][JsonIgnore]UritrueApplication Namedotnet restorereferences/| Reference file | When to load |
|---|---|
| Always (C# 14 compiler breaking changes — field keyword, extension keyword, span overloads) |
| Always (applies to all .NET 10 projects) |
| Always (SDK and build tooling changes) |
| Project uses ASP.NET Core |
| Project uses Entity Framework Core or Microsoft.Data.Sqlite |
| Project uses System.Security.Cryptography or X.509 certificates |
| Project uses Generic Host, BackgroundService, or Microsoft.Extensions.Configuration |
| Project uses System.Text.Json, XmlSerializer, HttpClient, or networking APIs |
| Project uses Windows Forms or WPF |
| Project uses Docker containers, single-file publishing, or native interop (P/Invoke) |
references/| 参考文件 | 加载场景 |
|---|---|
| 始终加载(C# 14编译器重大变更——field关键字、extension关键字、span重载) |
| 始终加载(适用于所有.NET 10项目) |
| 始终加载(SDK和构建工具变更) |
| 项目使用ASP.NET Core |
| 项目使用Entity Framework Core或Microsoft.Data.Sqlite |
| 项目使用System.Security.Cryptography或X.509证书 |
| 项目使用通用宿主、BackgroundService或Microsoft.Extensions.Configuration |
| 项目使用System.Text.Json、XmlSerializer、HttpClient或网络API |
| 项目使用Windows Forms或WPF |
| 项目使用Docker容器、单文件发布或本地互操作(P/Invoke) |