tags:

views:

125

answers:

2

I am very new to writing Build Script. I am trying to understand the impact of the using Different languages (c#, vb.net c++) while creating a build script.

Build script can written using either Nant or MSBuild.

Is the only change in the build script is with regards to compiler switch or even the deployment structure also changes with language. As far as I understand, i dont think there should be any impact on deployment structure but just want to confirm that from experts.

+1  A: 

There's nothing really specific to the languages when using MSBuild, it's an xml format all it's own.

That being said...you can have custom tasks that you write, but they can be in any .Net language you choose.

When you make changes to language, etc...as long as you're in visual studio, it's just compiling your solution in the way you have it configured (e.g. RELEASE, DEBUG, or another setting you've made). It's just calling that solution for the most part, unless you're really customizing the build. If you did customization (like we customize the assembly build version to match the change set) then language specifics may matter, since you're editing source files in some cases.

Nick Craver
+1  A: 

There wouldn't be much difference as far as the build script is concerned. It would be easier to compile the project using an MSBuild task on the solution or project file. When your build script compiles using an MSBuild task it doesn't need to worry if it's a vb or c# project.

The language specific details of compiling are handled between the MSBuild task and the project file. Think of it as your build script runs a sub-build-script, except Visual Studio generates that sub-build-script (project file). Both MSBuild and Nant (with Nant Contrib) can launch an MSBuild task.

If you want the build server to automatically generate a version number for your project then there is a minor difference. The AssemblyInfo file will be different between the languages. The build task you use to update the AssemblyInfo file should have an option to choose which language it's working with, and will update the file accordingly.

mcdon
Thanks a lot for the answer.
rauts