【问题标题】:Extracting msbuild commands from visual studio从 Visual Studio 中提取 msbuild 命令
【发布时间】:2016-05-19 15:57:28
【问题描述】:

有什么方法可以从 Visual Studio 2012/2015 中提取 msbuild 命令。我正在创建一个命令行工具,我必须在其中“手动”为各种 C# 项目编写 msbuild 命令。我想知道是否可以直接从 Visual Studio 中提取这些命令,所以我将这些命令复制并粘贴到我的工具中。

【问题讨论】:

    标签: c# visual-studio-2012 visual-studio-2015 msbuild


    【解决方案1】:

    来自SysInternals 的ProcMon 允许您拦截“ProcessCreate”事件。

    尝试在构建解决方案期间运行它并将过滤器设置为 Process Name = "MSBuild"

    这将拦截 MSBuild 的所有 Windows 事件,包括进程创建。如果您显示事件属性,您可以看到创建其进程的命令行。

    【讨论】:

    • 非常感谢 Moataz。您提到的工具有助于跟踪 MSBuild.exe 进程。但是,我仍然无法获得构建过程的确切命令行。我继续看到您在上面突出显示的同一命令行。
    • 也许 VS 启动了一堆 msbuild 实例然后以另一种方式与之通信?在任何情况下,在 VS 中构建也会将诸如 BuildingInVisualStudio=true 之类的属性传递给构建,因此您不能按原样复制粘贴 msbuild 命令,因为该标志在命令行上可能应该是 fals
    • 似乎 devenv.exe 通过 IPC 管道与 MSBuild.exe 通信以进行构建。使用来自 Sysinternals 的 pipelist,在构建过程中显示到 msbuild 的管道。我会退后一步,问你为什么真的需要拦截命令?为什么不直接使用 msbuild?
    • 我需要来自 Visual Studio 的 msbuild 命令的唯一原因是让我的命令行脚本创建速度更快。我有很多项目文件,为每个文件编写 msbuild 都需要时间。如果我直接从 Visual Studio 获得 msbuild 命令,我可以简单地将它们复制并粘贴到这里,而不用担心它们的正确性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多