Hey guys!
I recently wanted to give Unity’s new Entity Component System a try and ran into several problems. Here’s how I successfully enabled ECS in Unity 2018.2.0f2
Change the Runtime Version
Click File -> Build Settings… -> Player Settings…
In the inspector open the “Other Settings”-Foldout and set .NET 4.x Equivalent for “Scritping Runtime Version” and .NET 4.x for “Api Compatibility Version”.

Install ECS via the Package Manager
Click Window -> Package Manager
Select the All-Tab and Entities from the list. Click Install on the top right corner.

Maybe ECS is already running on your system, but it may happen that you get the following errors:

Here’re parts of the plain text (for search engine purposes):
UNetWeaver error: Exception :System.IO.IOException: Sharing violation on path Temp\Assembly-CSharp-firstpass.pdb
Failure generating network code.
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget)
To solve this issue I found the following solution in the Unity forum: Patch Weaver
Attention: you can only do this if you’re not using UNet (Unity Networking) in your project!
Download DnSpy
Follow this link and download the latest version of DnSpy: Download DnSpy

Backup Unity.UNetWeaver.dll
Create a copy of Unity.UNet.Weaver.dll which can be found in Editor/Data/Managed.

Modify Unity.UNetWeaver.dll
Make sure Unity is closed and open the original Unity.UNetWeaver.dll with DnSpy. Unfold Unity.UnetWeaver -> Unity.UNetWeaver.dll -> Unity.UnetWeaver -> Program in the tree on the left side. Right click on Process(…) and select Edit Method (C#).

Delete the body of the method and type in “return true;”

Press File -> Save Module… and overwrite the original Unity.UNetWeaver.dll
Open Unity again and your compile errors are gone :)
Thank you for reading and have a nice day!
0 comments