2010-08-24 121 views
0

我有一个具有5个不同版本的应用程序(作为服务安装)。为了测试,我需要安装全部5个。目前我必须卸载应用程序并重新安装所需的版本。沙盒应用程序

该应用程序沿着一些包含它的设置的xml文件有一个exe文件(在Program Files \ App中)。这是通过MSI文件安装的。每个版本都具有相同的文件\服务名称,并在安装之前检查以前的版本。

任何想法在同时运行所有五个版本的方式?

+0

每个已知虚拟器的答案:-) – leoluk 2010-08-24 21:55:44

回答

1

首先,我假设你是开发人员,而不是质量保证人员。 QA需要使用虚拟机,或者仅使用5台独立的PC。我所描述的是一种肮脏的黑客,可能会为你节省一些时间。

安装版本#1〜C:\program files\YourApp_1

启动services.msc,停止服务,启动类型更改为手动。

启动regedit.exe

转到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services键,为您的服务找到关键字,重命名服务:更改键名和“DisplayName”值,并简化您的生活,为“描述”值写入有意义的内容。 “MyApp 1.0 - 这是参考版本”。

如果安装程序在安装之前检查了其他某些键(可能是例如HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourApp),请将其删除。如果您不知道这些密钥 - 使用SysInternals ProcessMonitor来获取它们(将过滤器设置为instmsiw.exe或其他内容,然后启动安装程序,等待“找到prevoius版本”消息,再到ProcessMonitor的alt-tab,停止日志从底部到顶部)

现在安装版本2到C:\program files\YourApp_2,重复此过程。

最后,要切换版本,您只需启动services.msc,停止当前运行的版本,启动另一个版本。或者使用net start/net stop命令行命令。管他呢。

P.S. 警告如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要您重新安装操作系统。 Microsoft不能保证可以解决这些问题。修改注册表需要您自担风险。

+0

伟大的解决方案 - 谢谢的字体 – madlan 2010-08-31 22:06:19

0

使用VirtualBox

创建一个测试系统,配置它,然后克隆它5次(您将不得不使用vboxmanage),并在它们中的每一个上安装一个版本。

如果不是服务,我曾建议Sandboxie,但我怀疑Sandboxie可以处理服务。