views:

232

answers:

4

How does one go about keeping track of source files, resources, references, assemblies, etc.. if they didn't want to use Visual Studio. I know you can compile code with csc, and use csc to add all of the references, etc.. but it becomes quite painful to add these references as the project grows.

How do you manage it when splitting the project up into separate folders (different modules, etc..) and how do you manage dependencies, build order, etc..

Are there any open source (free) projects for managing this? Even so, is it fairly simple for one to do this without having to download any 3rd party programs?

+5  A: 

You can still use MSBuild as well as project and solution files provided you know their format.

Otávio Décio
Indeed - MSBuild is "the" solution. Even if you are using VS, MSBuild is doing all the heavy lifting here. And MSBuild is part of the .Net Framework, msbuild.exe lives right next to csc.exe.
Brian
+1  A: 

You can use many of the Open Source Build Systems for C#.

Of these, NAnt is quite popular, especially for people transitioning from Java.

Reed Copsey
A: 

As long as your projects arent complex (referencing lots of assemblies, resource files, etc). You can manage with just an editor and "autogenerated" csproj files. The basic structure of the csproj file is very straightforward, and the same in 80% of the projects, setup a pre-build task to construct the csproj from template and then execute csc.

NAnt I believe has a generic task for "build directory" that would let you do it, but you will have to have some automation to setup the nant scripts initially.

GrayWizardx
A: 

You can actually use makefiles if you're really keen. Some of our early .NET integration into our build system uses makefiles rather than csproj. However it is something of a black art which I have personally never fully understood, i.e. sorry I can't give you any prescriptive advice/samples. Nowadays we just msbuild which is considerably easier.

donovan