5 ms·
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, bu
by O____________O 12y ago
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.
- cssmoo 12y ago> 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.
- michielvoo 12y agoYeah, 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).
- O____________O 12y agoDo you run VS on your production servers? Why would I have any build system installed on a production server?
- snuxoll 12y agoFor CI? Gotta run your builds somewhere, and a build agent is a production application.
- O____________O 12y agoWhat is CI?
- duncans 12y agoVisual 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.
- Mandatum 12y agoCorrect, VS commandline calls MSBuild. They're using MSBuild, they just don't know it.
- O____________O 12y agoCorrect, VS commandline calls MSBuild. That seems like an inaccurate description of what's happening: http://stackoverflow.com/questions/11932164/what-parameters-does-visual-studio-pass-to-msbuild 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.
- Negitivefrags 12y agoVisual 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.
- rjblackman 12y agoincorrect, 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).