microsoft / ProjectAcoustics

Microsoft Project Acoustics
https://aka.ms/acoustics
Creative Commons Attribution 4.0 International
137 stars 21 forks source link

Multiple precompiled assemblies with the same name System.Runtime.CompilerServices.Unsafe.dll #59

Open dgkoris opened 3 years ago

dgkoris commented 3 years ago

Hello,

I'm having an error "Multiple precompiled assemblies with the same name System.Runtime.CompilerServices.Unsafe.dll".

That's because the same dll is installed with Unity's package "Collections".

I tried to delete one of the dlls, but then I get an error for another dll and eventually some dlls which depend on these fail to load, as expected.

For my project I need Vegetation Studio Pro, which requires the following Unity packages which are conflicting with Project Acoustics.

"com.unity.burst": "1.4.6", "com.unity.collections": "0.9.0-preview.6", "com.unity.ide.vscode": "1.2.3", "com.unity.jobs": "0.2.10-preview.13", "com.unity.mathematics": "1.2.1",

Since those dlls are precompiled, I can't change anything in the code to fix this error.

To replicate, just unpack the "MicrosoftProjectAcoustics.sample.unitypackage" into an empty Unity project and install the Unity packages mentioned above.

The full error is:

PrecompiledAssemblyException: Multiple precompiled assemblies with the same name System.Runtime.CompilerServices.Unsafe.dll included or the current platform. Only one assembly with the same name is allowed per platform. Assembly paths: 
Assets/Acoustics/Editor/Plugins/Windows/System.Runtime.CompilerServices.Unsafe.dll
D:/Git/Microsoft Project Acoustics Sample/Library/PackageCache/com.unity.collections@0.9.0-preview.6/System.Runtime.CompilerServices.Unsafe.dll
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.ValidateAndGetNameToPrecompiledAssembly (UnityEditor.Scripting.ScriptCompilation.PrecompiledAssembly[] precompiledAssemblies) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.ToScriptAssemblies (System.Collections.Generic.IDictionary`2[TKey,TValue] targetAssemblies, UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings settings, UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+CompilationAssemblies assemblies, System.Collections.Generic.HashSet`1[T] runUpdaterAssemblies) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.GenerateChangedScriptAssemblies (UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+GenerateChangedScriptAssembliesArgs args) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (UnityEditor.Scripting.ScriptCompilation.ScriptAssemblySettings scriptAssemblySettings, System.String tempBuildDirectory, UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions, UnityEditor.Scripting.ScriptCompilation.EditorBuildRules+TargetAssembly[]& notCompiledTargetAssemblies, System.String[]& notCompiledScripts) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.CompileScripts (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform, UnityEditor.Scripting.ScriptCompilation.CompilationTaskOptions compilationTaskOptions) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.TickCompilationPipeline (UnityEditor.Scripting.ScriptCompilation.EditorScriptCompilationOptions options, UnityEditor.BuildTargetGroup platformGroup, UnityEditor.BuildTarget platform) (at <4a1b55d6b009421a9ad1d16b54b782d5>:0)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface:TickCompilationPipeline(EditorScriptCompilationOptions, BuildTargetGroup, BuildTarget)
MikeChemi commented 3 years ago

Thanks for the bug report. We'll look into modernizing our dependency chain to play nice here.

dgkoris commented 3 years ago

Thanks Mike, I really appreciate it as I'm very keen to use it for my VR game.