沙盒应用程序

时间:2010-08-24 21:45:14

标签: windows

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

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

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

4 个答案:

答案 0 :(得分:1)

虽然这更像是一种严重错误类型的问题:

http://www.microsoft.com/windows/virtual-pc/

你的答案是: - )

答案 1 :(得分:1)

为5个不同版本中的每个版本使用虚拟机。

VMWare播放器是免费的:http://www.vmware.com/products/player/

答案 2 :(得分:1)

首先,我假设您是开发人员,而不是QA人员。 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版本”消息,alt-tab到ProcessMonitor,停止记录,并从底部到顶部读取日志)

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

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

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

答案 3 :(得分:0)

使用VirtualBox

创建一个测试系统,对其进行配置,然后将其克隆5次(您必须使用vboxmanage),并在每个测试系统上安装一个版本。

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