【发布时间】:2019-11-05 18:08:30
【问题描述】:
我想知道在我的 dotnet 核心应用程序中构建/重建和清理解决方案时 Visual Studio 使用的确切 dotnet cli 命令?
我知道 dotnet 核心 cli 是在 msbuild 之上构建的,因此当您运行 Build/Rebuild 或 Clean Solution Visual Studio 时使用 msbuild 直接命令而不是来自 dotnet core cli 的命令?
对吗?
如果这是正确的,我想知道它在三个操作中使用了哪个或多个 msbuild 命令:
- 构建解决方案
- 重建解决方案
- 清洁解决方案
哪些 dotnet core cli 命令与此等价?
我从这篇文章中知道(Relationship between the dotnet cli and the new vs2017 msbuild) 以下命令在 dotnet 和 msbuild 中执行构建、重建和清理。
Dotnet cli:
- 构建:dotnet 构建
- 重建:dotnet build --no-incremental
- 清理:dotnet clean
Msbuild:
- 构建:msbuild /t:build
- 重建:msbuild /t:rebuild
- 清理:msbuild /t:clean
我猜这还不是全部?这很好,但我想看看 Visual Studio 为这些操作生成了什么?
我想知道是否可以更改 Visual Studio 的行为,使其运行 dotnet cli 命令而不是 msbuid?
研究:
我在Visual Studio(Visual Studio 2017 Enterprise Version 15.9.11)中构建了一个asp.net core web api项目
我在构建/重建和清理解决方案时正在查看 Visual Studio 输出,但找不到与 dotnet 核心 cli 或 msbuild。然后我去了VisualStudio工具/选项/“项目和解决方案”/“构建和运行”并更改了选项:
- MSBuild 项目构建输出详细程度:尝试了“详细”和“诊断”选项
- MSBuild 项目构建日志文件详细程度:尝试了“详细”和“诊断”选项
结果是Visual Studio的Output窗口产生的日志很大,很难找到 将用于操作的确切命令。我可以看到输出中的许多地方都使用了 msbuild,但这有点令人困惑 找到确切的命令。
我也看到了这个问题 (Does Visual Studio use MSBuild internally, and what is the exact command?)
这个答案说:
引用:
“似乎没有指定MSBuild命令行选项, 而是在 Visual Studio 中调用 MSBuild API。除非 你有 Visual Studio 源代码进行逆向工程,你不能 获取等效的命令行。”
dotnet core cli msbuild 也一样吗?
感谢您对此提供任何帮助或澄清。
【问题讨论】:
-
嗨朋友,这个问题有什么更新吗?如果您发现任何发现,请随时在此处分享:)我稍后会删除此评论,因为它只是一个提醒。
-
不幸的是没有,但似乎无法找到VS使用的确切命令,正如您在答案中已经提到的那样。
标签: .net-core msbuild visual-studio-2017 asp.net-core-cli