UWP Build fails with I18N.dll in plugins folder

Hi,

I use unity 2019.4.9 with UWP.
When trying to build the project following error occured during build in UWP:

Failed running C:\Program Files\Unity\Hub\Editor\2019.4.9f1\Editor\Data\il2cpp\build/deploy/net471/UnityLinker.exe -out=C:/VRSoft/Temp/StagingArea/Data/Managed/tempStrip -x=“C:/Users/SNACKA~1/AppData/Local/Temp/tmp333f97f.tmp” -x=“C:/Users/SNACKA~1/AppData/Local/Temp/tmp213728d5.tmp” -x=C:/VRSoft/Temp/StagingArea/Data/Managed/TypesInScenes.xml -x=C:/VRSoft/Assets/link.xml -d=C:/VRSoft/Temp/StagingArea/Data/Managed --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Assembly-CSharp-firstpass.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.XR.Management.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.XR.OpenVR.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/RenderHeads.AVProMovieCapture.Demos.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/RenderHeads.AVProMovieCapture.Runtime.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Mirror.Authenticators.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Mirror.Components.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Core.Runtime.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/ApathyTransport.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Mirror.Examples.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.XR.Oculus.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Ninja.WebSockets.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Apathy.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Universal.Runtime.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/NavMeshComponents.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/NavMeshComponentsExamples.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Mirror.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/UnityEngine.SpatialTracking.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/DissonanceVoip.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.TextMeshPro.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Unity.XR.WindowsMixedReality.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/Apathy.Native.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/DOTween.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/ProBuilderCore-Unity5.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.CJK.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.MidEast.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.Other.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.Rare.dll --include-unity-root-assembly=C:/VRSoft/Temp/StagingArea/Data/Managed/I18N.West.dll --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory=C:/VRSoft/Temp/StagingArea/Data/Managed --rule-set=Conservative --editor-data-file=C:/VRSoft/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json --platform=WinRT --engine-modules-asset-file=“C:/Program Files/Unity/Hub/Editor/2019.4.9f1/Editor/Data/PlaybackEngines/MetroSupport/Whitelists/…/modules.asset”

stdout:
Fatal error in Unity CIL Linker
Mono.Cecil.ResolutionException: Failed to resolve I18N.Common.MonoSafeEncoding
at Mono.Linker.BCL.EventTracingForWindows.IsEventSourceImplementation(TypeDefinition type, LinkContext context)
at Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
at Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition type)
at Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
at Unity.Linker.Steps.UnityMarkStep.InitializeAssembly(AssemblyDefinition assembly)
at Mono.Linker.Steps.MarkStep.Initialize()
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, Action1) UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable1, String&, String&, String, String)
UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String, String&, String&, IEnumerable1, UnityLinkerRunInformation) UnityEditorInternal.AssemblyStripper:RunAssemblyStripper(UnityLinkerRunInformation) UnityEditorInternal.AssemblyStripper:StripAssemblies(String, BaseUnityLinkerPlatformProvider, IIl2CppPlatformProvider, RuntimeClassRegistry, ManagedStrippingLevel) UnityEditorInternal.IL2CPPBuilder:Run() UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String, String, IIl2CppPlatformProvider, Action1, RuntimeClassRegistry)
PostProcessWinRT:RunIL2CPPForProjectBuild() (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:1874)
PostProcessWinRT:RunIL2CPP() (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:1845)
PostProcessWinRT:Process() (at C:/buildslave/unity/build/PlatformDependent/MetroPlayer/Extensions/Managed/PostProcessWinRT.cs:214)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

This looks like a bug. Can you submit a bug report? We will investigate this.

https://unity3d.com/unity/qa/bug-reporting

I have submitted a bug report. Case 1274723

1 Like

I’m having the exact same issue with Unity 2019.4.11. Was there any resolution?

Are you able to get us a project that reproduces this? The original reporter promised to do it a month ago but we haven’t received it yet :(.

Ha! I assumed the original reporter had submitted it. It’s pretty late here right now, but I’ll put a formal bug report together tomorrow and try and submit my project.

@Tautvydas-Zilys ,

I’m trying to prepare my project for submission with this bug report, however the two tools in the link posted by @JoshPeterson above, Repro Project Wizard and Project Stripping tool both lead to broken links:

I’d prefer not to send you a massive 16GB project archive, but I would definitely like to assist you in reproducing this bug. Could you direct me to the proper places to find these tools so I can submit a proper bug report? Thank you!

Can you just create a new project and copy over all the DLL and .cs files? That should be enough to reproduce this.

@Tautvydas-Zilys ,

I actually think I stumbled upon a solution, and it should work for the original poster ( @ArneSnackaert ) as well as for anyone else who has this problem.

I noticed today that there was only one version of I18N.dll and I18N.West.dll in my project, and that they’re both targeting .Net 3.5 (I didn’t see this until I selected the file in the editor). My project is intended for .Net 4.6. But it was still trying to link in those versions, presumably because it was the only ones it could find. I did a search through my Visual Studio directories and found versions compatible with .Net 4.x. I simply copied them into my project, enabled them for Editor, Standalone and WSA Player, and then disabled the 3.5 versions. Voila…it worked!

Is this is the cleanest or most correct solution? Probably not. But I now have a successful UWP build, so I’m not complaining. Sorry I could never get you a sample project! Hopefully this helps even more.

I opened bug 1285943 today, but it’s now solved. Please feel free to close that issue now. Thank you!

Yeah, if you were using the DLLs that were targeting a different .NET version that would explain why you were seeing that issue.