The Assembly UnityEditor is referenced by Assembly-CSharp-firstpass ('Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll'). But the dll is not allowed to be included or could not be found.
I'm getting an error when I'm building using batch mode only and not when compiling using the Editor. Running Build -> Steam Full from the editor works just fine and compiles ok, but running in batch mode does not.
The odd issue about this error is that Assembly-CSharp-firstpass.dll is supposed to reference UnityEngine and the fact it's complaining about it seems like a bug. I used ILSpy to examine the binary from the build in editor that succeeds and it's referencing UnityEditor as expected.
Exception in Log File
ArgumentException: The Assembly UnityEditor is referenced by Assembly-CSharp-firstpass ('Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll'). But the dll is not allowed to be included or could not be found.
at UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1[T] alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2[TKey,TValue] cache, UnityEditor.BuildTarget target) [0x00255] in C:\buildslave\unity\build\Editor\Mono\AssemblyHelper.cs:155
at UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, UnityEditor.BuildTarget target) [0x0001e] in C:\buildslave\unity\build\Editor\Mono\AssemblyHelper.cs:195
UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions, Boolean)
UnityEditor.BuildPipeline:BuildPlayerInternal(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:359)
UnityEditor.BuildPipeline:BuildPlayer(String[], String, String, BuildTargetGroup, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:254)
UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:237)
UnityEditor.BuildPipeline:BuildPlayer(EditorBuildSettingsScene[], String, BuildTarget, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPipeline.bindings.cs:220)
Build:BuildSteamFull() (at Assets\Editor\Scripts\Build\Build.cs:113)
Command to Build Project
"C:\Program Files\Unity-2018.2.6f1\Editor\Unity.exe" -quit -batchMode -executeMethod Build.BuildSteamFull -logFile ..\Bin\build.log -nographics -outputDir "..\Bin"
The Function To Build The Client
[MenuItem("Build/Steam Full")]
public static bool BuildSteamFull()
{
string outputFile = GetOutputFile(BuildPlatform.Steam);
EditorBuildSettingsScene[] scenes = GetFullPlaylist();
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Standalone, "STEAM;STEAMWORKS_WIN;UNITY;__MEGASPLAT__;VEGETATION_STUDIO;CTS_PRESENT;UNITY_POST_PROCESSING_STACK_V2");
BuildReport report = BuildPipeline.BuildPlayer(scenes, outputFile, BuildTarget.StandaloneWindows64, BuildOptions.None);
if (!Build.DidBuildFail(report))
{
return false;
}
CopyStaticFolderToOutput(Path.GetDirectoryName(outputFile));
return true;
}
Answer by KadenBigBox · Nov 14, 2018 at 01:04 AM
Make sure your SetScriptingDefineSymbolsForGroup
is setting the proper symbols.
If a symbol is missing, it might fail to compile and give the error "ArgumentException: The Assembly UnityEditor is referenced by " which is misleading.
We were getting that error and we had no idea why, but it turned out it was indirectly caused by Microsplat because we only had the "MICROSPLAT" symbol, when we also needed "MICROSPLAT_DETAILRESAMPLE". After adding that, everything worked as expected.
Your answer
Follow this Question
Related Questions
Score counting works in editor but not when I build it! 0 Answers
compareTag function not working in build version 0 Answers
Build vs Play Mode Disparity,"Play" mode works fine but the Build has missing functionality 0 Answers
Can't create a build in Unity from ubuntu 0 Answers
Build EXE - Crashes 0 Answers