Assembly Definition Files + Source

Arakade

New member
Hi
Please can you help me get Behaviour Designer (from source) working with Unity's Assembly Definition Files.

The problem is `BehaviorDesignerEditor.dll` has a dependency on `Assembly-CSharp-firstpass` assembly. The ideal for asmdefs use is no 'Unity default' assemblies. After one adds an asmdef to BD's plugins directory, the symbols that BehaviorDesignerEditor wants are in the new assembly anyway (not in firstpass). It produces 1 completely counter-intuitive error message (*1 below) which is actually caused by an earlier message that maybe only appears in the Editor.log (*2).

I've attached a zip of the 3 asmdefs which includes their paths for your convenience. Simply create a new Unity project, install BD from source then unzip atop (3 asmdefs + meta).

Many thanks in advance, Rupert.

*1:
Code:
Assets/Behavior Designer/Editor/Object Drawers/FloatSliderDrawer.cs(13,62): error CS0012: The type `BehaviorDesigner.Runtime.Tasks.ObjectDrawerAttribute' is defined in an assembly that is not referenced. Consider adding a reference to assembly `Assembly-CSharp-firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
 
(Filename: Assets/Behavior Designer/Editor/Object Drawers/FloatSliderDrawer.cs Line: 13)

*2:
Code:
FileNotFoundException: Could not load file or assembly 'Assembly-CSharp-firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.

 
(Filename:  Line: -1)

The following assembly referenced from D:\Users\User\Dev\Unity3D\TmpBDAsmDefExp\Assets\Behavior Designer\Editor\BehaviorDesignerEditor.dll could not be loaded:
     Assembly:   Assembly-CSharp-firstpass    (assemblyref_index=2)
     Version:    0.0.0.0
     Public Key: (none)
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (D:\Users\User\Dev\Unity3D\TmpBDAsmDefExp\Assets\Behavior Designer\Editor\).

Could not load file or assembly 'Assembly-CSharp-firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
 

Attachments

  • BD-AsmDefs.zip
    2.9 KB · Views: 5
I'm not much help right now but I have heard of people getting it working. In the next release (1.6.1) I plan on supporting assembly definitions out of the box so I'll have a proper solution soon.
 
Oh that's interesting. I did search the forum in the hope someone had posted the solution. Any chance you might have a link / idea where I could find out how they did it? It's blocking a project's upgrade to 2018 which I need to resolve another problem! (you know how it goes)

Also do you have an ETA on 1.6.1?

Thanks.
 
There were a couple of posts on the old forum but I don't know if a solution was posted (I've had a couple of email conversations about it where I heard that it was solved).

I don't like giving ETAs but assembly definitions will be the first thing that I work on with 1.6.1 and I can send it to you to test as soon as I do.
 
oh that's very kind. thank you.

Agh! Old forum content not duplicated here? Doh, should have considered that! Right, just searched the old forum.
I found this thread from Bert who basically gave up and this one from aian. So sadly no hints there. I'd wondered about doing the same as Bert (decompiling and modifying until official fix ready) but apparently not (at least without changing those hard-coded assembly references -- may still be possible). Maybe the Editor dll supplied with the non-source version has different dependencies? (Haven't tried this yet.) No obvious clues for direction.

So yeah I agree ETAs are like demonic contracts (you can only lose) but maybe a super rough ball park would leave your soul your own? :)

Cheers, R.

p.s. Is there a new place to download source distro from? I seem to still be getting 1.5.12 from the old place but see 1.6 is available in asset store. Thanks again.
 
So yeah I agree ETAs are like demonic contracts (you can only lose) but maybe a super rough ball park would leave your soul your own? :)
Unity 2018.3 is coming out soonish and I know that I'll need to do an update to directly support that :)


Is there a new place to download source distro from? I seem to still be getting 1.5.12 from the old place but see 1.6 is available in asset store. Thanks again.
Yes, it's at: https://opsive.com/behavior-designer-runtime-source/
 
Top