Latest Entites and InputSystems packages conflict.

Given a new project. Unity 2019.3.0f3; .Net4.x; mono or ilcpp…
Install the latest packages for Entities (preview.10-0.4.0) and InputSystems (preview.3-1.0.0)…
Get this error.

Something went wrong while Post Processing the assembly (Assembly-CSharp-firstpass.dll) :
Failed to resolve System.Diagnostics.Process
  at Unity.Entities.CodeGen.TypeReferenceExtensions.CheckedResolve (Mono.Cecil.TypeReference typeReference) [0x00001] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/CecilExtensionMethods.cs:13
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.<VerifyMethod>g__IsTypeRestrictedToBlobAssetStorage|3_0 (Mono.Cecil.TypeReference tr, Unity.Entities.CodeGen.BlobAssetSafetyVerifier+<>c__DisplayClass3_0& ) [0x000f0] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/BlobAssetSafety/BlobAssetSafetyVerifier.cs:64
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.VerifyMethod (Mono.Cecil.MethodDefinition method, System.Collections.Generic.HashSet`1[T] _nonRestrictedTypes) [0x00058] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/BlobAssetSafety/BlobAssetSafetyVerifier.cs:90
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.AssertNoBlobAssetLeavesBlobAssetStorage () [0x00063] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/BlobAssetSafety/BlobAssetSafetyVerifier.cs:37
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.PostProcessImpl () [0x0000a] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/BlobAssetSafety/BlobAssetSafetyVerifier.cs:20
  at Unity.Entities.CodeGen.EntitiesILPostProcessor.PostProcess (Mono.Cecil.AssemblyDefinition assemblyDefinition, System.Boolean& madeAChange) [0x00009] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/EntitiesILPostProcessor.cs:231
  at Unity.Entities.CodeGen.EntitiesILPostProcessors.Process (Unity.CompilationPipeline.Common.ILPostProcessing.ICompiledAssembly compiledAssembly) [0x0004b] in /private/tmp/ttt/Library/PackageCache/com.unity.entities@0.4.0-preview.10/Unity.Entities.CodeGen/EntitiesILPostProcessor.cs:44
  at UnityEditor.Scripting.ScriptCompilation.ILPostProcessing.RunILPostProcessors (UnityEditor.Scripting.ScriptCompilation.ScriptAssembly assembly, System.String outputTempPath) [0x0011b] in /Users/builduser/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/ILPostProcessing.cs:209
  at UnityEditor.Scripting.ScriptCompilation.ILPostProcessing.PostProcess (UnityEditor.Scripting.ScriptCompilation.ScriptAssembly assembly, System.Collections.Generic.List`1[T] messages, System.String outputTempPath) [0x00061] in /Users/builduser/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/ILPostProcessing.cs:99

Hey,

I had the same problem after update ( error was with System.Collections.Generic.Stack and System.Collections.Generic.SortedDictionary).

I had to change them from code. The issue is related Entities pkg.
Any good solution for this?

Something went wrong while Post Processing the assembly (Assembly-CSharp.dll) :
Failed to resolve System.Collections.Generic.Stack`1
  at Unity.Entities.CodeGen.TypeReferenceExtensions.CheckedResolve (Mono.Cecil.TypeReference typeReference) [0x00001] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\CecilExtensionMethods.cs:13
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.<VerifyMethod>g__IsTypeRestrictedToBlobAssetStorage|3_0 (Mono.Cecil.TypeReference tr, Unity.Entities.CodeGen.BlobAssetSafetyVerifier+<>c__DisplayClass3_0& ) [0x000f0] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\BlobAssetSafety\BlobAssetSafetyVerifier.cs:64
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.VerifyMethod (Mono.Cecil.MethodDefinition method, System.Collections.Generic.HashSet`1[T] _nonRestrictedTypes) [0x00058] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\BlobAssetSafety\BlobAssetSafetyVerifier.cs:90
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.AssertNoBlobAssetLeavesBlobAssetStorage () [0x00063] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\BlobAssetSafety\BlobAssetSafetyVerifier.cs:37
  at Unity.Entities.CodeGen.BlobAssetSafetyVerifier.PostProcessImpl () [0x0000a] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\BlobAssetSafety\BlobAssetSafetyVerifier.cs:20
  at Unity.Entities.CodeGen.EntitiesILPostProcessor.PostProcess (Mono.Cecil.AssemblyDefinition assemblyDefinition, System.Boolean& madeAChange) [0x00009] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\EntitiesILPostProcessor.cs:231
  at Unity.Entities.CodeGen.EntitiesILPostProcessors.Process (Unity.CompilationPipeline.Common.ILPostProcessing.ICompiledAssembly compiledAssembly) [0x0004b] in C:\Users\Smarty\Dropbox\Projects\Ideas\SwordAdventure\SwordAdventure\Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen\EntitiesILPostProcessor.cs:44
  at UnityEditor.Scripting.ScriptCompilation.ILPostProcessing.RunILPostProcessors (UnityEditor.Scripting.ScriptCompilation.ScriptAssembly assembly, System.String outputTempPath) [0x0011b] in <83a73882c51c4602b3d34743827d03e7>:0
  at UnityEditor.Scripting.ScriptCompilation.ILPostProcessing.PostProcess (UnityEditor.Scripting.ScriptCompilation.ScriptAssembly assembly, System.Collections.Generic.List`1[T] messages, System.String outputTempPath) [0x00061] in <83a73882c51c4602b3d34743827d03e7>:0

For latest entities packages (from 0.2.0 if I remember right) you should use NET Standard 2.0, not .Net4.x

  • The default Api Compatibility Level should now be .NET Standard 2.0 and a warning is generated when the project uses .NET 4.x.

https://docs.unity3d.com/Packages/com.unity.entities@0.4/changelog/CHANGELOG.html#changes-2

1 Like

Thanks for the report. This is a (my) bug in entities package. I’ll fix it

3 Likes

Thanks @eizenhorn
What confused me was entities 0.4.0 was working fine with .net4 until I added other packages. :confused:

Is the Standard 2.0 API a requirements for the foreseeable future?
It’s a bummer, because gRPC needs 4.5.

does grpc for .net not support .net standard 2.0? or just grcp for c#

1 Like

Please, tell me when you fix it.
Thank you!

Fix will be in the next release. Next release will be after new year.

In the mean time you can embd the com.unity.entities package into the packages folder and apply this patch.
Or just downgrade to previous release.

5309421–533658–postprocess.patch.txt (1.66 KB)

3 Likes

You should say it like: “After year” :smile:

Thanks for this! fixed the issue

Sorry if this is a silly question but… how do I apply the patch?

Go to the project that has the error and open the file \Library\PackageCache\com.unity.entities@0.4.0-preview.10\Unity.Entities.CodeGen/EntitiesILPostProcessor.cs

Open the patch and find the lines that have the - next to it and replace those with the lines that have a + next to it in the file you opened EntitiesILPostProcessor.cs