- Home /
BuildPipeline.BuildAssetBundles doesn't omit Editor script paths
When using BuildPipeline.BuildAssetBundles() I get a ton of errors like this:
Assets/tools/Mega-Fiers/Editor/MegaFiers/MegaOBJExportEditor.cs(3,7): error CS0246: The type or namespace name `UnityEditor' could not be found. Are you missing an assembly reference?
Normal Player build do not have this error. This is on 2017.4.6 LTS editor. Fresh project using the same code to build does not have the same problem.
Here's my build code:
string bundlepath = EditorUtility.SaveFilePanel("Build Mod","%userprofile%\\Documents","My First Mod","assetBundle");
string filename = Path.GetFileNameWithoutExtension(bundlepath);
string directory = Path.GetDirectoryName(bundlepath);
AssetBundleBuild[] builds = {new AssetBundleBuild()};
builds[0].assetBundleName = filename;
string[] assets = new string[1];
assets[0] = SceneManager.GetActiveScene().path;
builds[0].assetNames = assets;
Debug.Log("Building asset bundle " + filename + " to " + directory);
Debug.Log("Included scene path: " + assets[0]);
AssetBundleManifest manifest = BuildPipeline.BuildAssetBundles(directory,builds,BuildAssetBundleOptions.None,BuildTarget.StandaloneWindows64);
I don't think it's relevant tho, as the same code builds properly a fresh empty project.
Is this a bug or am I missing a specific setting that makes BuildPipeline try and squeeze editor scripts into my bundle?
Screenshot here: ![alt text][1] [1]: /storage/temp/120134-errorz.jpg
Answer by Sosowski · Jul 05, 2018 at 10:18 AM
Ok, I have managed to track down the bug and find the solution. The issue only pertains when using Assembly Definitions, which are supposed to supersede special folders (like 'Editor' folder) as explained by Karl Jones here: https://forum.unity.com/threads/assembly-definition-woes.509541/#post-3402749
tl;dr If you're using Assembly Definitions, put .asmdef files in all Editor directories and set Platforms to 'Editor' only.
Hope this helps someone!
Your answer
![](https://koobas.hobune.stream/wayback/20220612170033im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How to import the object from server to unity 2 Answers
How do I release editor memory? 2 Answers
Please explain BuildPipeline.PushAssetDependencies 2 Answers
Can't load objects from asset bundle when using AssetBundle.CreateFromFile 1 Answer
Give error after exporting AssetBundle by using BuildPipeline 0 Answers