Visual Studio传递给MSBuild的参数是什么?
当Visual Studio运行构build时,它将运行MSBuild来完成大部分工作。 如果将.sln文件传递给MSBuild,并具有适当的Configuration和Platform属性,它将按照Visual Studio的方式构build解决scheme。
msbuild mysolution.sln /p:Configuration=Release /p:Platform="Any CPU"
但是,有一些差异:有时,通过MSBuild而不是通过Visual Studio,构build将会出错,反之亦然。
Visual Studio通过什么参数传入MSBuild来影响进程? 是否有一些方法来查看它正在执行构build时传递的参数?
Visual Studio不执行MSBuild.exe
,而是托pipe构build引擎本身(通过Microsoft.Build.*
程序集) – 至less在默认的C#项目系统中就是这种情况。 其他语言,插件,软件包等可能会做不同的事情。
其实,在微博上有一个关于这个的系列文章,我正试图find他们并更新这个答案。
更新 :再次发现它。 在这里find “Visual Studio中的MSBuild”的post。
关于你原来的问题, 这个页面可能会帮助你进一步。 你也可以去“工具”,“选项”,“项目和解决scheme”,“build立和运行”,并增加MSBuild输出冗长。 用“诊断”你应该基本上看到开始构build时设置的每个属性。
首先,您可以使用/v:diag
参数运行msbuild以获取诊断级别的日志logging。 这真的可以帮助搞清楚为什么构build失败。
否则,是的,如果使用进程监视器 ,则可以监视进程启动事件,您可以在其中看到发送到进程的特定命令行。
特别:
- 运行进程监视器
- filter»filter…
-
Operation
is
Process Create
»添加 -
Operation
is
Process Start
»添加 - 好
- 通过VS和命令行msbuild运行你的构build
- 请参阅详细信息列中的命令行参数
- MSBuild ItemGroup,不包括.svn目录和文件
- 通过MSBuild的MSDeploy的有效参数
- 在构build服务器上找不到Microsoft.WebApplication.targets。 你的解决scheme是什么?
- 如何为MSBuild指定平台?
- 如何使用msbuild获取exec任务输出
- 为什么MSBuild在C:\ for Microsoft.Cpp.Default.props而不是c:\ Program Files(x86)\ MSBuild中查找? (错误MSB4019)
- MSBuild不包含“VCTargetsPath”属性的值
- 你可以防止MSBuild.exe运行生成事件?
- 如何使用Windows SDK 7.1从命令行运行msbuild?