Sorry for being somewhat vague but so is the project I'm leading now. I inherited a large body of various in-house tools and am trying to put unified build system around each one.Some of the projects we have (few dozen) are .NET-based web-projects C# mostly, some of these are web-services and some webapps. The apps were build over past 6 years so .NET version varies from 2 to 3.5. The worst part - all of the apps were build using VS and none has command-line builds.
The requirement is: I should be able to check out code from SVN and fully build any or all of the projects completely from the command-line with no input prompts so it can be eventually integrated into TeamCity
(continuous integration tool)
I have C/C++, Java background so I did a little research and everything seems to be pointing to MSBuild
as a tool. Now for the past 2 weeks all I hear from our .NET developers: "It's hard, it's impossible, we don't know how to do it" So here now come the questions:
- Is it possible to retrofit any existing .Net project with command-line only build? If there are limitation what would those be?
- Do I need a full-blown version of VS to perform the build and deployment or is there some smaller alternative (Again, eventually projects will be build on continuous integration box with no GUI)
- Can I check out code (from SVN) into any directory? Currently I've been told that I need to put code into "special location" configured to be "monitored" by VS
- How to manage external dependencies? Currently I'm hearing from the team that any 3rd party libraries needs to be "pre-installed" prior to the build using UI and the best solution I've been offered by team is to "install and create a VM"
Your suggestions will be much appreciated