【问题标题】:How do I Install Multiple Versions of MyProgram (same PC, VS2008)?如何安装多个版本的 MyProgram(同一台 PC,VS2008)?
【发布时间】:2009-08-21 15:03:56
【问题描述】:

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

在安装更新之前,我(唯一的开发人员)会测试我的新例程,直到我对它能够按照我的预期执行感到满意为止。这通常是有效的,但它让组经理担心。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    相信我,您不希望您的安装程序因为您的 BETA“升级”某些组件而导致整个系统崩溃而关闭其他人的生产服务。

    【讨论】:

      【解决方案2】:

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

      这里是MSDN write up on changing Product Code 了解更多信息。

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

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

      【讨论】:

        【解决方案3】:

        我会给 beta .exe 起一个不同的名称:app_beta.exe。您可以使用相同的设置来部署它。您还可以在每个 beta 版本或 prod 版本中不断更改您的 upgradeCode - 它们可以重叠。

        产品:2.0

        测试版:2.1

        测试版:2.2

        产品更新:2.3

        下一个测试版:2.4

        【讨论】:

        • 其他人试过这个吗?目前,我的应用程序会在 App Data 文件夹中读取和写入各种设置。此外,它使用公司的 SQL Server 进行数据访问。只是更改产品名称是 IT 人员认为会起作用的方法,但这不会改变一切,并且(在我看来)不会成为真正的测试如果有效。
        • 我倾向于认为如果他们想要一个真正的调试/测试环境,我需要一个 Citrix 服务器和 SQL 服务器,其设置方式与我们现有的 Citrix/SQL 服务器的设置方式相同,因为如果我有对我的代码进行 30 或 40 处更改,只是为了在我们现有的环境中使用实时数据库对其进行测试……好吧,测试的意义何在?然后,我需要测试我的发布版本,以确保我已经撤消了我所做的所有 30 或 40 项更改,以便我可以调试应用程序。
        • 当然,理想情况下你应该有一个专门的测试环境,但是很多地方都做不到。如果需要,您可以使用第二个数据库进行测试(第三个用于开发),并且可以在代码中使用条件编译变量来分隔开发/测试/产品,或使用源代码工具进行分支。
        【解决方案4】:

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

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

        【讨论】:

        • 嗯...我们公司还没有购买InstallShield,而且由于我们的应用程序只是为内部使用而开发的,他们很可能不会购买。公司希望我使用现成的物品完成我的任务。
        最近更新 更多