我正在运行 dotnet 工作负载更新并遇到了 BSOD,现在当我运行
dotnet --info
和 dotnet workload list
之类的东西时,我遇到了这样的错误
System.Text.Json.JsonReaderException:“0x00” 是一个无效的值的开始。行号: 0 |内联字节位置:0。 在 System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json,ExceptionResource 资源,字节 nextByte,ReadOnlySpan
2.MoveNext() at System.Linq.Enumerable.Contains[TSource](IEnumerable1 bytes) at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte marker) at System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte first) at System.Text.Json.Utf8JsonReader.ReadSingleSegment() at System.Text.Json.Utf8JsonReader.Read() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestReader.Utf8JsonStreamReader.Read() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestReader.ReadWorkloadManifest(String id, String manifestPath, LocalizationCatalog localizationCatalog, Utf8JsonStreamReader& reader) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadManifestReader.ReadWorkloadManifest(String manifestId, Stream manifestStream, Stream localizationStream, String manifestPath) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.InitializeManifests() at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.GetAvailableWorkloadDefinitions()+MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator
1 比较器) at Microsoft.DotNet.Workloads.Workload.VisualStudioWorkloads.GetInstalledWorkloads(IWorkloadResolver 工作负载解析器,InstalledWorkloadsCollection安装的工作负载, 可空1 source, TSource value, IEqualityComparer
1 sdkWorkloadIds)位于 Microsoft.DotNet.Cli.WorkloadCommandParser.ShowWorkloadsInfo(ParseResult parseResult、WorkloadInfoHelper、workloadInfoHelper、IReporter 报告者、字符串 dotnetDir、布尔值 showVersion)位于 Microsoft.DotNet.Cli.CommandLineInfo.PrintWorkloadsInfo() 位于 Microsoft.DotNet.Cli.CommandLineInfo.PrintInfo() 位于 Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, TimeSpan 启动时间,ITelemetry telemetryClient)位于 Microsoft.DotNet.Cli.Program.Main(String[] args)1 sdkFeatureBand) at Microsoft.DotNet.Workloads.Workload.List.WorkloadInfoHelper.AddInstalledVsWorkloads(IEnumerable
我有
尝试读取清单时,该异常不提供路径,因此很难找到正确的路径。是否有配置或其他东西可以让异常变得更详细,而不是费力地浏览 procmon 列出的所有清单文件并尝试找到 0 字节损坏的 json 文件。
这里有一些想法:
dotnet workload repair
C:\Program Files\dotnet\sdk-manifests\8.0.100
,然后
*.json
并按大小排序以查找空文件或可疑的小文件,可以修复或删除该文件,或者如果很难找到:dotnet workload install