modesttree / Zenject

Dependency Injection Framework for Unity3D
MIT License
2.43k stars 269 forks source link

Reflection Baking Invalid Paths #68

Open brock-henderson opened 4 years ago

brock-henderson commented 4 years ago

I turned on reflection baking and I'm getting a lot of exceptions from Invalid paths. I believe it stems from some of the Unity packages I'm using with the Package Manager. Has anyone else been encountering this? I'm using Unity 2019.3.0f3 & Extenject 9.1.0

ArgumentException: Invalid path System.IO.Path.GetDirectoryName (System.String path) (at <437ba245d8404784b9fbab9b439ac908>:0) Zenject.ReflectionBaking.UnityAssemblyResolver..ctor () (at Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Unity/UnityAssemblyResolver.cs:35) Zenject.ReflectionBaking.ReflectionBakingBuildObserver.TryWeaveAssembly (System.String assemblyAssetPath) (at Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Unity/ReflectionBakingBuildObserver.cs:65) Zenject.ReflectionBaking.ReflectionBakingBuildObserver.OnAssemblyCompiled (System.String assemblyAssetPath, UnityEditor.Compilation.CompilerMessage[] messages) (at Assets/Plugins/Zenject/OptionalExtras/ReflectionBaking/Unity/ReflectionBakingBuildObserver.cs:37) UnityEditor.Compilation.CompilationPipeline+<>c.<SubscribeToEvents>b__16_3 (System.String assemblyPath, UnityEditor.Compilation.CompilerMessage[] messages) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/CompilationPipeline.cs:181) UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions)

KosaJunior commented 4 years ago

Workaround, in UnityAssemblyResolver.cs: before _appDomainAssemblyLocations[assemblies[i].FullName] = assemblies[i].Location; add if (string.IsNullOrWhiteSpace(assemblies[i].Location)) continue; :)