如何安装MyProgram的多个版本(同一台PC,VS2008)?

时间:2009-08-21 15:03:56

标签: c# visual-studio-2008 windows-installer install setup-deployment

我有一个我为公司编写的大型MDI Suite应用程序。它安装在两台Citrix服务器上,然后由整个工厂的数百个Windows终端访问。

在安装更新之前,我(唯一的开发人员)测试我的新例程,直到我满意它将执行我期望的方式。这通常有效,但是小组经理很担心。

他希望我安装一个BETA版本,可以在其他人的工作环境中进行测试。

为此,我需要在Citrix服务器上安装我的应用程序两次,以便我们的员工可以测试它(对吗?);但是,当我尝试在同一台PC(即Citrix服务器)上再次安装应用程序时,Windows表示它已经安装。

VS2008安装和部署安装程序有一个产品代码。我应该改变这个吗?我需要注意哪些问题?我是否需要跟踪两个产品代码(一个用于测试,一个用于发布)?

如何在1台PC上安装同一应用程序的2个工作版本?

4 个答案:

答案 0 :(得分:3)

最安全的方法是创建新的ProductCode,新的UpgradeCode,新的TARGETDIR并确保没有共享目录(除了系统目录)。让Windows Installer认为它是一个完全不同的产品。

更改ProductCode,但不更改UpgradeCode可能会导致现有组件升级。当安装运行 FindRelatedProducts 操作时,它将找到具有匹配升级代码的任何内容,并尝试升级匹配的组件。

我非常同意cutrisk - 首先将整个事物放在其他地方(安装发布版本,升级到BETA,打开它进行内部测试等)然后小心向客户推出。

相信我,你不希望你的安装程序关闭别人的生产服务,因为你的BETA“升级”某些组件并且整个系统都会崩溃。

答案 1 :(得分:1)

因为你想允许双重安装应该工作。我会制作一个新的“beta”安装程序,它可能会针对不同的安装目录,以尽量减少出血。

以下是MSDN write up on changing Product Code以获取更多信息。

另一个可能的角度,可能更简单.....是否有可以托管它的测试/暂存Citrix服务器?这就是我们在这里推出变革的方式。但这最终取决于农场中的Citrix环境/服务器......

哦,关于跟踪产品代码,根据我的经验(对或错),这并不像确保你的 UpgradeCode 同步一样重要。

答案 2 :(得分:1)

我给beta .exe一个不同的名字:app_beta.exe。您可以使用相同的设置来部署它。您还可以随每个版本的beta或prod版本不断更改升级代码 - 它们可以重叠。

prod:2.0

beta:2.1

beta:2.2

prod update:2.3

下一个测试版:2.4

答案 3 :(得分:0)

InstallShield 2009及更高版本支持“多个实例”:

例如为: http://blog.deploymentengineering.com/2008/03/installshield-2009-beta-part-i.html