如何找出Visual Studio发送给MSBuild的命令?

4

我正在尝试在CI/CD引擎中使用MSBuild,并需要使用它发布一个ASP.NET Core MVC应用程序。

我想知道Visual Studio在构建/发布项目时向MSBuild发送了什么内容,并将其完全发送到MSBuild。

有没有办法找出Visual Studio 2017发送到MSBuild以构建/发布.NET Core项目的命令?

更新:对于那些说VS使用MSBuild API的人,只需终止所有MSBuild.exe进程,然后通过VS构建项目/解决方案,您会发现MSBuild.exe会再次出现在进程列表中(通过任务管理器查看)。那么,这是怎么解释的呢?如果VS使用API,则该API应在devenv.exe进程内运行,并且在任务管理器中不应出现任何MSBuild.exe的实例。对吗?

更新2:devenv.exe是否公开其发布功能?


Visual Studio使用MSBuild托管API执行任务,因此您不需要捕获命令。对于.NET Core项目,请使用“dotnet”。 - Lex Li
2
可能是Visual Studio向MSBuild传递了哪些参数?的重复问题。 - Christian.K
2个回答

3
“有没有办法找出Visual Studio 2017发送给MSBuild构建/发布.NET Core项目的命令?”
答案是否定的。因为Visual Studio使用 MSBuild API 执行一系列任务来完成构建/发布,不会发送命令给MSBuild:
“Visual Studio使用MSBuild加载和构建托管项目。在Visual Studio中的项目文件 (.csproj, .vbproj, vcxproj等) 包含MSBuild XML代码,当您使用IDE构建项目时会执行该代码。Visual Studio项目导入所有必要的设置和构建流程以进行典型的开发工作,但您可以从Visual Studio内部或使用XML编辑器扩展或修改它们。”
因此,没有命令发送到MSBuild,我们无法捕获命令。您可以将MSBuild输出详细程度更改为“诊断”或“详细”后检查构建日志,以验证命令行的存在。

1

我希望那些链接链接在某种程度上对你有所帮助,它们虽然已经过时了,但可能会为你寻找解决方案提供一些指导。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接