- Home /
After upgrading to 3.4 I sync Monodevlop and now I have 4 different projects in my solution
Hi,
Before upgrading I had 1 Solution file with 1 Project in it. Now I have 1 Solution file with 4 projects in it. The projects are called:
Assembly-CSharp
Assembly-CSharp-Editor
Assembly-CSharp-firstpass
Assembly-UnityScript [not in mygame-csharp.sln - see edit]
I have tried deleting all project solution files and do a complete resync and I still end up with 4 projects. I can't seem to find any information about these 4 projects? My assets are spread throughout all 4, some of them included in 1 project, others in several projects.
|EDIT + 1| I currently run a virtual machine with Windows 7 + Visual Studio on it. I use this to get all the nice intellisense features.
The project Assembly-UnityScript will not open in Visual Studio. All three other projects depend on this project and thus nothing will compile.
BUT there are two project solutions. One called mygame and one called mygame-csharp. If you open the mygame-csharp solution it only contains the first 3 projects and will compile with visual studio - yay!
I still do not understand why there are extra projects and why they have not been mentioned in any documentation.
Thanks
I also have this. $$anonymous$$ind of annoying and cluttery, but everything still runs fine for me. I would like to be able to get rid of it, though.
I'd like to have an explanation for this as well. Anybody from Unity care to comment?
For me it's more than just clutter. It's a confusing mess that's difficult to navigate. I also consider it broken, since neither Visual Studio nor $$anonymous$$onoDevelop can open a .unityproj file, errors pop up every time the solution is loaded.
@luvcraft, @flintmech: Don't post such things as an "Answer". Use comments for annotations. Read the FAQ
We developers don't give a fuck about what $$anonymous$$ono does internally. These kind of issues had always been resolved adding references. I can understand that solutions using more than one language may need this extra step, but then again, don't let internal stuff make its way to the IDE, and if you need to, make it pretty and simple.
As it stands now, it's just wrong. Plainly and simply wrong.
Answer by Bunny83 · Sep 30, 2011 at 01:23 PM
Actually Unity always had this seperation even before the update. Unity compiles 3 (or 6) different assemblies. But now they also seperated the projects accordingly:
Assembly-CSharp-firstpass
Assembly-CSharp
Assembly-CSharp-Editor
Same happens with UnityScript (JavaScript)
1. firstpass
folders: "`Standard Assets`", "`Pro Standard Assets`", "`Plugins`"
All first pass assemblies is compiled first (C#, UnityScript, Boo). The reason is that you can't use any classes from other languages unless they are already compiled and added to the project as assembly (thanks to .Net / Mono all are compatible).
So a first-pass-C#-script can't use a first-pass-UnityScript-script. The first passes provide the base on which the other passes are build on top.
2. (normal pass)
folders: everything outside "`Editor`" and the above mentioned folders
The usual compiling group is the group where most of your scripts should be located. The big advantage is that all assemblies from the first pass (from all languages) can be used in those scripts because they are already compiled.
3. Editor
Well, all editor scripts also go into a seperate assembly since it isn't even included into the build. The editor scripts are compiled last so they can use all of your runtime scripts.
Some Notes:
I can understand the relationship between the different assemblies but i have to agree that it's very confusing to work with. However when you stick to one language (i would recommend that) you only have to deal with one project (the normal one). Beside the better management it will also compile faster if you don't have a first-pass group.
It totally fine that the editor stuff still is seperated since it IS something different.
Unity creates multiple solution files for the different editors since Visual studio can't work with UnityScript the UnityScript projects are not included in the VS version.
Your answer
Follow this Question
Related Questions
How to increment a Version string everytime Unity is built? 3 Answers
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
MonoDevelop C# Assembly problem: UnityEngine does not exist in current context. 1 Answer
Why can't I edit C# script although I have monodevelop installed? PLEASE HELP 1 Answer