我可以看到编译器构建项目所给出的命令吗?

4

我想知道在Visual Studio 2012中构建项目时是否有可能查看给编译器的命令。如何实现?

(我对 .Net C# 项目感兴趣)

4个回答

5
请将其更改为 TOOLS -> 选项 -> 项目和解决方案 -> 生成和运行 -> MSBuild 项目输出详细程度 -> 正常

然后你将在输出窗口中看到你想要的内容。
示例输出: CoreCompile: 1> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /errorendlocation ...

我正在寻找那个选项。 - Jeremy Thompson
很高兴能帮上忙。我有时用它来解决构建问题,非常方便。 - Ray Cheng

1
使用 Process Monitor 工具来查看 Visual Studio 使用的 CSC.exe 命令。

这个工具很棒,但是在我构建一些项目时找不到csc.exe的任何踪迹。我看到的最接近的东西是MSBuild.exe(C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo /nodemode:1 /nr)。也许根本没有使用csc.exe? - Daniel San
是的,这很神奇 - 它是由Mark Russinovich构建的。这里有一个技巧。它可以实时捕获硬盘、注册表和进程信息。因此,您需要启动它并快速重现问题/构建,然后快速停止跟踪。因为它记录了如此多的信息,我通常会通过csv将结果导出到Excel中,并进行自动排序 - 过滤掉非Visual Studio活动,然后搜索csc.exe - Jeremy Thompson
感谢这个简短的教程。在写下我的上一个评论之前,我已经弄清楚了如何使用它。根据进程监视器显示,我认为Visual Studio并不使用csc.exe。 - Daniel San
@DanielSan csc.exe 是由 MSBuild 进程生成的,而不是直接由 devenv.exe 生成的。 - tbone
@JeremyThompson 你应该真正了解procmon(ctrl+L)的过滤功能。为你关心的进程和操作设置过滤器,然后开始捕获数据。 - tbone

0

我想知道当我按下“构建”按钮时发生了什么。 - Daniel San

0

前往输出选项卡: 菜单 -> 调试 -> 窗口 -> 输出


我只看到像这样的消息:'ConsoleApplication8.vshost.exe' (Managed (v4.0.30319)): Loaded '....dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 我想知道给编译器构建项目的命令是什么。 - Daniel San

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