After upgrading to 3.4 I sync Monodevlop and now I have 4 different projects in my solution


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:

  1. Assembly-CSharp

  2. Assembly-CSharp-Editor

  3. Assembly-CSharp-firstpass

  4. 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.


more ▼

asked Jul 27, 2011 at 03:18 AM

avatar image

124 8 7 16

I also have this. Kind of annoying and cluttery, but everything still runs fine for me. I would like to be able to get rid of it, though.

Jul 28, 2011 at 06:45 PM luvcraft

I'd like to have an explanation for this as well. Anybody from Unity care to comment?

Sep 16, 2011 at 07:56 PM TheGeoff

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 MonoDevelop can open a .unityproj file, errors pop up every time the solution is loaded.

Sep 30, 2011 at 12:45 PM flintmech

@luvcraft, @flintmech: Don't post such things as an "Answer". Use comments for annotations. Read the FAQ

Sep 30, 2011 at 12:56 PM Bunny83

We developers don't give a fuck about what Mono 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.

Sep 03, 2012 at 10:03 AM trapazza
(comments are locked)
10|3000 characters needed characters left

1 answer: sort voted first

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.

more ▼

answered Sep 30, 2011 at 01:23 PM

avatar image

96.8k 53 297 527

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments



asked: Jul 27, 2011 at 03:18 AM

Seen: 3236 times

Last Updated: Sep 03, 2012 at 10:03 AM