我用的是VMWare8,安装的时候附送了我一个Visual Studio的插件,似乎是跨机器调试程序用的。也就是在主机的VS上调试虚拟机中的程序,看着很牛逼,于是稍微研究了一下。下面是攻略:

我建了个很简单的控制台程序用来演示。断点加在了主函数入口。

第一步:启动虚拟机,我用的是一台XP的虚拟机,记得安装VMWare Tools,要调试.NET程序也当然要安装对应的.NET Framework。然后,去【控制面板\管理工具\本地安全设置\本地策略\安全选项】中,把网络访问:本地帐户的共享和安全模式改成“经典”,如图:

第二步:在虚拟机中增加一个和主机当前登录帐户一模一样的帐户。比如主机的帐户是Edi_Wang,密码是123456,那么虚拟机上也得建立同样的用户,并且放在管理员组,然后用这个帐户重新登录虚拟机。

第三步:打开虚拟机设置,在Options选项卡中,找到Shared Folders,设置为Always Enabled,然后将VS工程的Debug目录共享出来。

比如我的工程是:E:\DotNetProjects\VMDebugTest\VMDebugTest\bin\Debug,那我就在共享里打开这个目录,如下图所示。

这一步很重要,之后VS里的VMWare Debug插件需要用到这个共享。如果能在虚拟机里访问这个路径,那就说明设置成功了。到此,虚拟机上的设置完毕。

第四步:在VS的工具栏上找到VMWare插件,打开设置界面。

我们需要指定的有:

  1. Virtual Machine:指定为我们当前正在运行的那个虚拟机
  2. Guest Command(重要):指定为刚才配置的路径,即\\vmware-host\Shared Folders\Debug\VMDebugTest.exe。注意不要直接输入,要点右边的小箭头,选择run guest command才能设置成功。
  3. Shared Folders:和刚才配置共享一样,指定为Debug文件夹,指向的是E:\DotNetProjects\VMDebugTest\VMDebugTest\bin\Debug

其他选项默认应该都指定好了,如果有误,大家可以自己改一下。

然后,我们就可以启动调试了,有图有真相: