.net core Visual Studio在生成、重新生成和清理解决方案时使用了哪些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命令与此

我想知道Visual Studio在我的dotnet核心应用程序中构建/重建和清理解决方案时使用的确切的dotnet cli命令

我知道dotnet core cli是在msbuild之上构建的,所以当您运行Visual Studio使用的构建/重建或清理解决方案时 直接使用msbuild命令,而不是来自dotnet core cli的命令

对吗

如果这是正确的,我想知道它在三个操作中使用了哪一个或多个msbuild命令:

  • 构建解决方案
  • 重建解决方案
  • 清洁溶液
  • 哪些dotnet核心cli命令与此等效

    我从这篇文章中知道 以下命令在dotnet和msbuild中执行build、rebuild和clean

    Dotnet cli:

    • 构建:dotnet构建
    • 重建:dotnet构建--无增量
    • 清理:dotnet清理
    Msbuild:

    • 生成:msbuild/t:Build
    • 重新生成:msbuild/t:重新生成
    • 清除:msbuild/t:清除
    我想这还不够?这很好,但我想看看VisualStudio为这些动作生成了什么

    我想知道是否可以更改VisualStudio的行为,使其运行dotnet cli命令而不是msbuid

    研究:

    我在Visual Studio中构建asp.net核心web api项目(Visual Studio 2017企业版15.9.11)

    构建/重建和清理解决方案时,我正在查看VisualStudio输出,但找不到与此相关的任何内容 dotnet core cli或msbuild。然后我转到VisualStudio工具/选项/“项目和解决方案”/“构建并运行”,并更改了选项:

    • MSBuild项目生成输出详细信息:尝试了“详细”和“诊断”选项
    • MSBuild项目生成日志文件详细程度:尝试了“详细”和“诊断”选项
    结果是在VisualStudio的输出窗口中生成的日志非常大,很难找到 将用于操作的确切命令。我可以看到输出中的许多地方都使用了msbuild,但它有点令人困惑 找到确切的命令

    我也看到这个问题()

    答案是:

    引述:

    “似乎未指定MSBuild命令行选项, 而是在Visual Studio中调用MSBuild API 您有Visual Studio源代码进行反向工程,但不能 获取等效的命令行。“

    dotnet core cli msbuild也是这种情况吗

    在此方面的任何帮助或澄清都将不胜感激

    我知道dotnet core cli是在msbuild之上构建的,所以当 运行生成/重新生成或清理解决方案Visual Studio使用msbuild 直接使用命令,而不是来自dotnet core cli的命令

    对于VS2017,我认为VSIDE在
    清理、生成和重新生成
    时直接调用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