构建错误:JsonException:“0x00”是值的无效开头

问题描述 投票:0回答:4

在 VS 2022 中使用 .NET FW 6。当我尝试构建我的项目时,我收到此错误....

JsonException: '0x00' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
   at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
   at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
   at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo jsonTypeInfo, Nullable`1 actualByteCount)
   at System.Text.Json.JsonSerializer.Deserialize[TValue](ReadOnlySpan`1 utf8Json, JsonSerializerOptions options)
   at Microsoft.AspNetCore.Razor.Tasks.StaticWebAssetsManifest.FromJsonBytes(Byte[] jsonBytes)
   at Microsoft.AspNetCore.Razor.Tasks.GenerateStaticWebAssetsManifest.PersistManifest(StaticWebAssetsManifest manifest)
   at Microsoft.AspNetCore.Razor.Tasks.GenerateStaticWebAssetsManifest.Execute()
JsonReaderException: '0x00' is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.
   at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 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 System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
    Website C:\Program Files\dotnet\sdk\6.0.200\Sdks\Microsoft.NET.Sdk.Razor\targets\Microsoft.NET.Sdk.Razor.StaticWebAssets.targets    411 

文件 Microsoft.NET.Sdk.Razor.StaticWebAssets.targets 的第 411 行是该文件的顶行......

    <GenerateStaticWebAssetsManifest
  Source="$(PackageId)"
  BasePath="$(StaticWebAssetBasePath)"
  Mode="$(StaticWebAssetProjectMode)"
  ManifestType="Build"
  ReferencedProjectsConfigurations="@(StaticWebAssetProjectConfiguration)"
  DiscoveryPatterns="@(StaticWebAssetDiscoveryPattern)"
  Assets="@(StaticWebAsset)"
  ManifestPath="$(StaticWebAssetBuildManifestPath)">
  </GenerateStaticWebAssetsManifest>

我尝试重新安装 VS(最新稳定的 .NET 6 FW),尝试清除 nuget 缓存并执行“dotnet 恢复”,按照此... NuGet.targets 错误:“.”,十六进制值 0x00,是无效字符升级到.Net Core 2.1.1后

我也在网上努力搜索但找不到答案。你有什么主意吗?谢谢!

c# .net .net-6.0
4个回答
11
投票

我有完全相同的错误消息,但我的问题是由损坏引起的

obj\调试 et6.0\staticwebassets.build.json

在项目文件夹之一中。我必须手动删除 obj 文件夹。 Visual Studio 中的“干净解决方案”没有解决问题。


0
投票

解决方案:我必须重新安装 GIT。这次我选择了“按原样签出,提交 Unix 风格的行结尾”选项,它成功了! Windows 一定是用 LF 进行了一些转换,这搞乱了构建。希望这对其他人有帮助!


0
投票

我使用 NuGet 包安装“Microsoft.Net.Sdk.Razor”包时消除了此错误。

请按照以下步骤操作:

右键单击项目 -> 选择“管理 NuGet 包” -> 转到“浏览”选项卡 -> 在搜索栏中输入“Microsoft.Net.Sdk.Razor” -> 单击安装最新版本或根据您所需的版本 -> 并构建/重建解决方案。

希望它能起作用。谢谢你。


0
投票

我正在使用 .NET 8,但我想这个问题只是一些损坏的文件。我必须再次克隆我的存储库,并手动将我的更改从这个

corrupted source
转移到我的新本地存储库。问题是找到哪个文件已损坏...这就是我再次克隆的原因。但它解决了我的问题!

© www.soinside.com 2019 - 2024. All rights reserved.