.net core Visual Studio在生成、重新生成和清理解决方案时使用了哪些dotnet core cli命令(或msbuild命令)?
我想知道Visual Studio在我的dotnet核心应用程序中构建/重建和清理解决方案时使用的确切的dotnet cli命令 我知道dotnet core cli是在msbuild之上构建的,所以当您运行Visual Studio使用的构建/重建或清理解决方案时 直接使用msbuild命令,而不是来自dotnet core cli的命令 对吗 如果这是正确的,我想知道它在三个操作中使用了哪一个或多个msbuild命令:.net core Visual Studio在生成、重新生成和清理解决方案时使用了哪些dotnet core cli命令(或msbuild命令)?,.net-core,msbuild,visual-studio-2017,asp.net-core-cli,.net Core,Msbuild,Visual Studio 2017,Asp.net Core Cli,我想知道Visual Studio在我的dotnet核心应用程序中构建/重建和清理解决方案时使用的确切的dotnet cli命令 我知道dotnet core cli是在msbuild之上构建的,所以当您运行Visual Studio使用的构建/重建或清理解决方案时 直接使用msbuild命令,而不是来自dotnet core cli的命令 对吗 如果这是正确的,我想知道它在三个操作中使用了哪一个或多个msbuild命令: 构建解决方案 重建解决方案 清洁溶液 哪些dotnet核心cli命令与此
- 构建:dotnet构建
- 重建:dotnet构建--无增量
- 清理:dotnet清理
- 生成:msbuild/t:Build
- 重新生成:msbuild/t:重新生成
- 清除:msbuild/t:清除
- MSBuild项目生成输出详细信息:尝试了“详细”和“诊断”选项
- MSBuild项目生成日志文件详细程度:尝试了“详细”和“诊断”选项
清理、生成和重新生成
时直接调用msbuild.exe。您可以通过任务管理器或其他工具轻松检查这一点
至于上面提到的:似乎没有指定MSBuild命令行选项,而是在Visual Studio中调用了MSBuild API。
我认为这是正确的,但仅适用于早期版本vs版本(20102013)。我已经使用VS2010进行了测试,在VS中执行与构建相关的操作时,它不会调用MSBuild.exe。因此VS2010中的msbuild不是作为单独的进程执行的
但对于VS2017,当我创建以.net core为目标的项目时,在执行与生成相关的操作(单击build、clean、rebuild按钮)时,它显然会调用msbuild.exe,如下所示:
关于msbuild命令VS实际执行的内容:
从现在起,VS2017将调用msbuild.exe来构建.net核心或.net fx项目
在我看来:
对于仅包含项目的解决方案:
构建解决方案=>msbuild xxx.sln/t:Build/p:Configuration=xxx;平台=xxx
重新生成解决方案=>msbuild xxx.sln/t:Rebuild/p:Configuration=xxx;Platform=xxx
=>msbuild xxx.sln/t:clean;构建/p:配置=xxx;平台=xxx
清理解决方案=>msbuild xxx.sln/t:Clean/p:Configuration=xxx;Platform=xxx
=>msbuild xxx.sln/t:clean
我认为每次在VS中单击Build按钮时,它都会从该框中选择Configuration和Platform的值,因为这两个参数肯定会传递给MSBuild.exe
另外,我们可以发现IDE在开始构建之前有一个检查过程:它将检查文件是否过期,然后确定是否需要构建。但这不是你在你的问题上所要求的,也不会影响你想要的命令,所以我跳过它
此外,请参阅此页,我们可以在此处找到一些与msbuild相关的设置:
因此,实际上我认为上面的命令应该添加一些参数,如:msbuild-m:8-v:m
此外:尽管我在VS中发现与构建相关的操作,但它将直接调用msbuild.exe。我不确定我上面的命令是否100%正确。恐怕除了那些在VSIDE中开发菜单命令的人之外,没有人能保证这一点。因此,如果我有任何误解,请随时纠正我:)
如果你只是想得到与VS完全相同的东西,你也可以试试。这是一份官方文件,确认构建开关在集成开发环境(IDE)中执行与构建解决方案菜单命令相同的功能。谢谢您的回答。它回答了我的部分问题,但不是全部。根据我的研究,我还得出结论,没有办法找到VisualStudio生成的确切命令。我对你的答案投了赞成票,因为它提供了答案和cl