这似乎不是一个太困难的问题,并且经过几个障碍,我正在疯狂地接近。但是我不能完全到达那里。
我正在开发商店中运行Windows 7。我想开始使用VS2010处理一些暂时不会发布的东西。我的老板说生产机器上没有beta代码,但如果可以在虚拟PC等隔离环境中运行VS2010,则可以为该项目运行VS2010。
好吧,我以前在VPC上使用过Win7的beta和RC,由于VPC环境,它的运行速度非常慢。但是每个人都对Windows 7的引导到VHD功能赞不绝口,该功能仅将磁盘虚拟化,而您实际上是在硬件上运行。可能要慢一些,但远不及VPC的速度损失。
我花了很多时间按照我想要的方式安装所有东西。所以我想,我将使用Disk2VHD克隆系统驱动器,并从中启动,然后将VS2010安装到该驱动器上。(我将大多数用户数据(包括我的所有项目)保存在单独的分区中,因此不必重复并且仍然可以使用。)
好吧,我遇到了一些困难,主要是因为我使用的是旧版本的Disk2VHD-(如果要尝试,请获取最新版本。)但最终我还是让它启动了。(Scott Hanselman在启动VHD时有一篇不错的博客文章)。
但这不完全是我的期望或期望。我所期望的是,VHD将成为C:驱动器,而原始(物理)C:驱动器将被隐藏或安装在不同的字母下,从而被隔离并不受任何更改的影响。
您真正得到的是VHD变成了D:驱动器,然后从D:驱动器启动,但是原始的C:驱动器仍然存在。除了VHD上的注册表是C:驱动器上注册表的克隆,并且包括许多对C:的硬编码引用之外,这还可以。因此结果是有些东西来自(和修改)D:(VHD),但是有些东西来自(和修改)C:。(如果打开cmd提示符并执行SET以查看环境变量,则将看到D:\和C:\路径的混合。)因此,我实际上并没有隔离的环境。最重要的是,%ProgramFiles%仍设置为C:\ Program Files。
我真正需要的是一个工具,该工具可以访问已安装的VHD AS FILES上的注册表文件(而不是注册表项),并且可以进行全局搜索并将所有C:\替换为D:。我还没有找到这样的程序。(我尝试使用称为注册表替换的程序来执行此操作,但是,即使以管理员身份运行,某些条目注册表也不允许您更改。)
有人知道吗?或任何其他解决我的问题的方法(除了使用干净的VHD从头开始并在其上安装Win7和所有程序之外)?