背景:VS2008很好很强大,但太费系统资源了,尤其是在虚拟机在里面装VS2008的时候更是如此。有时用vi编辑了源代码后,不想开VS IDE编译,但每次打开VS2008命令行,再切换到工程所在目录,然后手动敲命令太麻烦了。于是产生了集成集成VS2008命令行编译到.sln文件右键菜单的想法。
先上效果图:
1) VS2008命令行编译的命令:
- // 编译Debug版本
- "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" xxx.sln "Debug|Win32"
2) 仅集成到.sln文件
HKEY_CLASSES_ROOT\.sln, 右边的默认值为: VisualStudio.Launcher.sln
==> 在 HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell 下面增加一个子项即可添加右键菜单
3) 注册表集成右键菜单时,%1代表该文件名。
- "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" %1 "Debug|Win32"
但直接执行该命令的时候,cmd窗口闪一下就消失了,看不到编译结果。
4) 利用 cmd /K 命令,在执行了以上命令后保持命令行窗口不退出,以便查看编译结果。
最终命令为:
- cmd /K ""C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" %1 "Debug|Win32""
【小结】 新建一个文本文件,将以下内容保存以下内容,然后将文件名修改为 anyname.reg ;双击导入该reg文件到注册表;杀掉explorer进程再启动explorer进程(或注销或重启机器)即可。
(VS2008的路径请自行调整)
- Windows Registry Editor Version 5.00
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell]
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildDebug]
- @="命令行编译(Debug)"
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildDebug\command]
- @="cmd /K \"\"C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\vcpackages\\vcbuild.exe\" %1 \"Debug|Win32\"\""
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\bulildRelease]
- @="命令行编译(Release)"
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\bulildRelease\command]
- @="cmd /K \"\"C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\vcpackages\\vcbuild.exe\" %1 \"Release|Win32\"\""
EasyVCR update@2011.11.08
--------------------------------------------------------------------------------
上面的reg有点bug: 当.sln文件的全路径中包含空格时,会出错,修正如下:
最终命令为:
- cmd /K ""C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "%1" "Debug|Win32""
reg文件:
- Windows Registry Editor Version 5.00
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell]
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildDebug]
- @="命令行编译(Debug)"
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\buildDebug\command]
- @="cmd /K \"\"C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\vcpackages\\vcbuild.exe\" \"%1\" \"Debug|Win32\"\""
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\bulildRelease]
- @="命令行编译(Release)"
- [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\bulildRelease\command]
- @="cmd /K \"\"C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\vcpackages\\vcbuild.exe\" \"%1\" \"Release|Win32\"\""
EasyVCR update@2011.11.09
--------------------------------------------------------------------------------