Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Despite being a Windows developer for 90% of my career, I have no idea why anyone uses MSBuild. I've created several automated build and deployment systems, but I always used the command line Visual Studio interface.

Honestly, I don't know why anyone wants MSBuild. Poking around, people cite not needing to install the VS IDE on build servers, but I see zero drawback to doing that. Why would I want to maintain project dependencies, build orders, and whatnot in two places, when I could just build in exactly the same way, using the same solution/project files, on my dev box and my build server?

It seems to me that this is actually vastly more meaningful to traditionally open-source LAMP developers who are considering C# and ASP.Net on Linux in the future.



Visual Studio uses MSBuild. csproj/vbproj files are MSBuild files. MSBuild will take an SLN file as an argument and do the same as Visual Studio would do with it when you load it and click build.


Correct, VS commandline calls MSBuild. They're using MSBuild, they just don't know it.


Correct, VS commandline calls MSBuild.

That seems like an inaccurate description of what's happening: http://stackoverflow.com/questions/11932164/what-parameters-...

They're using MSBuild, they just don't know it.

Given the age of projects I've worked on, and that it's unclear whether MSBuild is involved in VS's C++ compilation, I don't think your assumption is correct.


Visual Studio changed to using MSBuild for C++ at the time when the project file extension changed from "vcproj" to "vcxproj".

The change was explicitly to make it so that a C++ project file was an MSBuild script.

Visual Studio absolutely uses MSBuild for C++ projects.


incorrect, the visual studio solution file has build configuration details that msbuild will not honour (e.g. you can specify certain build order parameters), as I found out recently with a project I took over. (I was wondering why building from the command line with ms build produced different results).


> I could just build in exactly the same way, using the same solution/project files, on my dev box and my build server

Do you run VS on your production servers? Because that's where it will shit a brick because you forgot to install ASP.Net MVC KB123123213 but the IDE installed it as part of update 4. Etc etc...

This problem gets VERY deep.


Do you run VS on your production servers?

Why would I have any build system installed on a production server?


For CI? Gotta run your builds somewhere, and a build agent is a production application.


What is CI?


Yeah, I prefer not to use the built in Visual Studio project templates. Best to always use bin deployed binaries explicitly installed from NuGet packages. In the future (later this year) we can also bin deploy the runtime (.NET Core) and base class library (Core FX).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: