解决VSCmdShell在VS2008下崩溃

http://vscmdshell.codeplex.com/ 下载了VSCmdShell的最新版(其实很久没更新了),安装后在VS2008下无法使用Cmd shell,只能使用Powershell。很郁闷

上官网的Issue Tracker看了下,发现了相关的问题的描述http://vscmdshell.codeplex.com/WorkItem/View.aspx?WorkItemId=14645

其实是代码中硬编码了VS2005的注册表路径,而我没有安装VS2005,运行VSCmdShell后VS自然就崩溃了。解决方法只能自己下代码把注册表路径改掉重新编译,覆盖安装文件。这里要说的是,其实没必要完全按着官方的说明安装很多软件才能去编译源代码(我不写.NET代码,所以那些工具我都没有用过,当然也没有安装了)。打开解决方案,我们只要修改VSCmdShell2005项目下的CommandShellHost.cs文件中123行,把8.0改成9.0即可。编译时选择Debug配置,这个配置编译过程中不会调用我们没有安装的那些工具。当然,我们可以修改项目属性,让编译器优化代码。把生成的Microsoft.VSPowerToys.VSCmdShell.dll和Microsoft.VSPowerToys.VSCmdShell.Interfaces.dll复制到安装目录覆盖即可。

Code Comments(22) Wed, 14 Oct 2009 06:21:44 +0800