如何从 Windows Explorer Shell 调用 Visual Studio






4.47/5 (7投票s)
本文展示了如何将 Visual Studio 集成到 Windows 资源管理器外壳程序中,并在不打开 IDE 的情况下调用 Visual Studio 命令。
引言
这是我的第一篇文章,所以我会从非常基础的内容开始。
本文适用的场景经常遇到。很多时候,我们需要在 Visual Studio 中构建一个解决方案或项目,但我们并不真正在乎看代码,所以我们不需要打开整个 IDE,这可能会浪费宝贵的时间。如果代码来自受信任的来源,或者是一段已知的代码(我们编写的),则可能发生这种情况。或者,我们只需要构建它!仅此而已。
我经常使用这个简单的技巧来清理我机器上的所有东西,并尝试从头开始构建我的解决方案,看看是否一切正常,然后再将任何代码提交到我们的 TFS 代码存储库。
背景
只需对 Windows 命令行解释器有一些基本了解。
分析 Visual Studio 提示
在 Visual Studio 中构建解决方案时,后台并没有什么“魔力”发生。实际上,是 devenv.exe 完成了所有工作,它只需要知道项目或解决方案文件的路径。这也可以通过打开 Visual Studio 命令提示符来完成,您可以在“开始”菜单的“工具”子文件夹中找到它。您会注意到,此菜单项只是指向命令行解释器的链接。
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" x86
其中
%comspec%
是一个 Windows 环境变量,指向命令行解释器 (cmd.exe)。/k
是 cmd.exe 的一个参数,它告诉它执行字符串指定的命令并保持打开状态。- vcvarsall.bat 的路径被引用了两次,既是为了保留空格,也是为了限制传递给命令行解释器的参数的作用域。
- 相反,
x86
是 vcvarsall.bat 脚本文件的参数。
如果您以前使用过此工具,您就会知道它设置了正确的环境变量,以便从控制台使用 Visual Studio,因此您可以从这里开始,通过输入
devenv
或
devenv "C:\solution.sln"
来打开 Visual Studio 中的解决方案文件,甚至
devenv "C:\solution.sln" /[Build|Clean|Rebuild]
分别构建、清理或重新构建解决方案文件。
使用代码
现在是时候使用我们迄今为止所见的内容,并将此命令包装成一个菜单项,使我们能够直接从 Windows 资源管理器的上下文菜单中使用 Visual Studio。
您肯定知道,您可以自定义特定文件类型的上下文菜单中显示的菜单项。让我们从创建一个新的菜单项开始,方法是单击 Windows 资源管理器工具栏中的“工具”>“文件夹选项”菜单项。在出现的对话框中,转到“文件类型”选项卡,然后查找 SLN (Microsoft Visual Studio) 文件扩展名。单击“高级”,然后单击“新建”按钮。现在,我们可以插入一个新的菜单项,称为构建解决方案,并带有关联的命令,该命令必须是
cmd.exe /k "call "C:\Program Files\Microsoft Visual
Studio 9.0\VC\vcvarsall.bat" & devenv "%1" /Build"
有几点值得注意
- 此命令行与 Visual Studio 命令提示符链接用于准备命令行解释器的命令不同。它使用了
%comspec%
系统变量(还记得吗?)而不是直接调用 cmd.exe 可执行文件。原因是您不能在菜单项命令行中使用%comspec%
。 - vcvarsall.bat 脚本不是在新打开的命令行解释器实例中直接执行,而是通过
call
命令执行。这允许在单个命令行解释器实例中组合命令。此脚本文件的路径可能与示例中的不同。请在您的 Visual Studio 安装文件夹中查找。 - vcvarsall.bat 脚本在没有参数的情况下调用。如果未提供参数,它将自动使用
x86
开关。 &
用于连接命令。%1
是当前文件名及其完整路径。已用引号括起来以保留空格。
关注点
您现在可以尽情尝试命令行解释器和 devenv 提供的任何参数组合。
例如,我使用的是
cmd.exe /c "echo === Building "%1" === & call
"C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" &
devenv "%1" /Build & pause"
此命令将
- 打印一个标题,显示当前操作和文件名 (echo Building %1)。
- 准备命令行解释器以使用 Visual Studio (call ... )。
- 构建解决方案 (devenv %1 /Build)。
- 等待按任意键 (pause)。
- 退出 (由于传递给 cmd.exe 的 /c 参数)。
您可以插入三个新的菜单项,它们使用 devenv 可用的三个主要参数:/Build、/Clean 和 /Rebuild,这样您就可以从上下文菜单执行这三个操作。
此外,如果您愿意,可以删除 pause 命令并将 /C 参数更改为 /K:这将使 Visual Studio 控制台在操作完成后保持打开状态。如果您想稍后做其他事情,这将非常方便。
历史
- 2009/7/12:首次发布。