What parameters does Visual Studio pass to MSBuild?

后端 未结 2 1442
长发绾君心
长发绾君心 2020-12-02 15:39

When Visual Studio runs a build, it runs MSBuild to do the majority of the work. If you pass the .sln file to MSBuild, with appropriate Configuration and Platform properties

相关标签:
2条回答
  • 2020-12-02 15:43

    First off, you can run msbuild with the /v:diag argument to get diagnostic-level logging. This can really help in figuring out why a build is failing.

    Otherwise, yes, if you use Process Monitor, you can monitor for process start events where you can see the specific command-line sent to the process.

    Specifically:

    • Run Process Monitor
    • Filter » Filter...
    • Operation is Process Create » Add
    • Operation is Process Start » Add
    • OK
    • Run your build through VS and through command-line msbuild
    • See the command-line arguments in the Detail column
    0 讨论(0)
  • 2020-12-02 16:06

    Visual Studio does not execute MSBuild.exe, but hosts the build engine itself (by means of the Microsoft.Build.* assemblies) - at least that is the case for the default C# project system. Other languages, addins, packages, etc. might do it differently.

    Actually, there was a post series on the Microsoft blogs about this, I'm trying to find them and update this answer.

    UPDATE: Found it again. Look for the "MSBuild in Visual Studio" posts here.

    Concerning your original question, this page might help you further. Also you could go to "Tools", "Options", "Projects and Solutions", "Build and Run" and increase the MSBuild output verbosity. With "Diagnostic" you should basically see every property that is set upon starting the build.

    0 讨论(0)
提交回复
热议问题