You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新至Visual Studio 2022 17.5.4后所有项目无法加载求助

问题

我最近将Visual Studio 2022从17.4.5版本更新至17.5.4版本,更新完成后所有项目均无法加载。我已尝试修复安装程序,也卸载重装了最新版本及旧版本,但问题仍未解决,恳请提供帮助。

错误日志如下:

error  : SDK Resolver Failure: "The SDK resolver "Microsoft.DotNet.MSBuildSdkResolver" failed while attempting to resolve the SDK "Microsoft.NET.Sdk". Exception: "System.FormatException: Invalid numeric identifier: '300_bak'.
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.TryParseCoreVersionPart(String input, Boolean throwOnFailure, Int32& value)
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.TryParse(String input, Boolean throwOnFailure, ReleaseVersion& version)
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion.Parse(String input)
   at Microsoft.Deployment.DotNet.Releases.ReleaseVersion..ctor(String version)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkFeatureBand..ctor(String version)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c.<FallbackForMissingManifest>b__9_1(String featureBand)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Linq.Enumerable.Max[TSource](IEnumerable`1 source)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.FallbackForMissingManifest(String manifestId)
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.GetManifestDirectories()
   at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<GetManifests>d__7.MoveNext()
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider)
   at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.Create(IWorkloadManifestProvider manifestProvider, String dotnetRootPath, String sdkVersion, String userProfileDir)
   at Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.CachingWorkloadResolver.Resolve(String sdkReferenceName, String dotnetRootPath, String sdkVersion, String userProfileDir)
   at Microsoft.DotNet.MSBuildSdkResolver.DotNetMSBuildSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext context, SdkResultFactory factory)
   at Microsoft.Build.BackEnd.SdkResolution.SdkResolverService.TryResolveSdkUsingSpecifiedResolvers(IList`1 resolvers, Int32 submissionId, SdkReference sdk, LoggingContext loggingContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath, Boolean interactive, Boolean isRunningInVisualStudio, SdkResult& sdkResult)
解决方案

问题根源

错误日志中明确指出Invalid numeric identifier: '300_bak',这是因为.NET SDK的工作负载清单目录中存在命名不符合版本规范的备份文件夹(带_bak后缀),导致SDK版本解析逻辑无法识别该目录,进而引发项目加载失败。

修复步骤

  • 打开.NET SDK的工作清单目录,默认路径:
    • 64位系统:C:\Program Files\dotnet\sdk-manifests
    • 32位系统:C:\Program Files (x86)\dotnet\sdk-manifests
  • 在该目录下找到所有带有_bak后缀的文件夹(如日志中的300_bak),直接删除这些文件夹,或者将后缀修改为非下划线格式(例如300-bak)
  • 同时检查用户目录下的SDK缓存路径:%USERPROFILE%\.dotnet\sdk-manifests,若存在类似命名的文件夹,执行同样操作
  • 重启Visual Studio,重新加载项目

额外排查步骤(若上述方法无效)

  • 关闭Visual Studio,删除%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache目录下的所有文件,清除组件缓存后重启VS
  • 打开命令提示符,执行dotnet workload list命令,检查是否有异常的工作负载,若有可尝试执行dotnet workload repair修复

内容的提问来源于stack exchange,提问作者Jack Phillips

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:17:27