C# System.Text.Json在Unity WebGL导出中使用时出错

C# System.Text.Json在Unity WebGL导出中使用时出错,c#,unity3d,linker,mono,C#,Unity3d,Linker,Mono,我正在尝试导出一个Unity项目,该项目使用SignalR Core并包含System.Text.Json作为参考。导入的每个dll都是netstandard2.0。但我得到了这个错误: Failed running F:\Unity\2020.1.3f1\Editor\Data\il2cpp\build/deploy/net471/UnityLinker.exe -out=C:/code/TestWalk/Temp/StagingArea/Data/Managed/tempStrip -x=C

我正在尝试导出一个Unity项目,该项目使用SignalR Core并包含
System.Text.Json
作为参考。导入的每个dll都是
netstandard2.0
。但我得到了这个错误:

Failed running F:\Unity\2020.1.3f1\Editor\Data\il2cpp\build/deploy/net471/UnityLinker.exe -out=C:/code/TestWalk/Temp/StagingArea/Data/Managed/tempStrip -x=C:/Users/serio/AppData/Local/Temp/tmp5f6b4dea.tmp -x=C:/code/TestWalk/Temp/StagingArea/Data/Managed/TypesInScenes.xml -x=C:/code/TestWalk/Assets/Plugins/link.xml -d=C:/code/TestWalk/Temp/StagingArea/Data/Managed --include-unity-root-assembly=C:/code/TestWalk/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory=C:/code/TestWalk/Temp/StagingArea/Data/Managed --rule-set=Conservative --editor-data-file=C:/code/TestWalk/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json --platform=WebGL --enable-engine-module-stripping --engine-modules-asset-file=F:/Unity/2020.1.3f1/Editor/Data/PlaybackEngines/WebGLSupport/Whitelists/../modules.asset

stdout:
Fatal error in Unity CIL Linker
Mono.Linker.MarkException: Error processing method: 'System.Text.Json.ImmutableCollectionCreator System.Text.Json.ReflectionMemberAccessor::ImmutableDictionaryCreateRange(System.Type,System.Type,System.Type)' in assembly: 'System.Text.Json.dll' ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Unity.Linker.Steps.Marking.ReflectionMarking.GetTypesInNewArr(ReflectionUsageContext reflectionContext, DetailedStackItem startStackItem, DetailedStackItem endStackItem, List`1 typeReferences)
   at Unity.Linker.Steps.Marking.ReflectionMarking.ProcessReflectionGetter[T](ReflectionUsageContext reflectionContext, DetailedStackItem stackItem, Func`2 getMembers, Func`3 bindingFlagsMatch, Func`3 parameterTypesMatch, Action`1 markMatch)
   at Unity.Linker.Steps.Marking.ReflectionMarking.ProcessGetConstructor(ReflectionUsageContext reflectionContext, DetailedStackItem stackItem)
   at Unity.Linker.Steps.Marking.ReflectionMarking.MarkThingsUsedViaReflection(MethodBody body)
   at Unity.Linker.Steps.UnityMarkStep.MarkReflectionLikeDependencies(MethodBody body)
   at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
   at Unity.Linker.Steps.UnityMarkStep.MarkMethodBody(MethodBody body)
   at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
   at Unity.Linker.Steps.UnityMarkStep.ProcessMethod(MethodDefinition method)
   at Mono.Linker.Steps.MarkStep.ProcessQueue()
   --- End of inner exception stack trace ---
   at Mono.Linker.Steps.MarkStep.ProcessQueue()
   at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
   at Mono.Linker.Steps.MarkStep.Process()
   at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context)
   at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
   at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step)
   at Mono.Linker.Pipeline.Process(LinkContext context)
   at Unity.Linker.UnityDriver.Run()
   at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling()
   at Unity.Linker.UnityDriver.RunDriver()
stderr:

UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunProgram(Program, String, String, String, CompilerOutputParserBase)
UnityEditorInternal.Runner:RunManagedProgram(String, String, String, CompilerOutputParserBase, Action`1)
UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable`1, String&, String&, String, String)
UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String, String&, String&, IEnumerable`1, UnityLinkerRunInformation)
UnityEditorInternal.AssemblyStripper:RunAssemblyStripper(UnityLinkerRunInformation)
UnityEditorInternal.AssemblyStripper:StripAssemblies(String, BaseUnityLinkerPlatformProvider, IIl2CppPlatformProvider, RuntimeClassRegistry, ManagedStrippingLevel)
UnityEditorInternal.IL2CPPBuilder:Run()
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, IIl2CppPlatformProvider, Action`1, RuntimeClassRegistry)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
System.Text.Json
版本使用4.7.2


编辑:Windows x86_64 build运行良好。

我也处于同样的情况。当使用WebGL构建时,我在这个链接中的UnityLink.exe出现了一个错误,我认为这个问题有一个答案,它说你必须删除Mono.Security.dll,我还没有尝试过这个解决方案。我希望这能对你有所帮助。MariaBy我使用Unity 2019.4.12f1的方式