【发布时间】:2014-05-07 21:43:51
【问题描述】:
我的项目需要能够同时安装 2 个或更多版本。 据我所知,我找到的解决方案是更改每个版本的安装程序的升级代码。
但是我想自动执行此操作。在常规 GUID 中,我只使用“*”,但这不适用于升级代码。 有没有办法在每个 wix 预构建或任何其他解决方案中生成新的升级代码?
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<Bundle Name="Prog" Version="1.2.1.16" Manufacturer="Gilad Corporation" UpgradeCode="{7E71F945-BA46-4872-A6B2-AF992FFDF2D0}">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication LicenseFile="..\SetupProject\Gilad.rtf" />
</BootstrapperApplicationRef>
<Chain>
<!-- TODO: Define the list of chained packages. -->
<PackageGroupRef Id="Netfx45FullPackage" />
</Chain>
</Bundle>
【问题讨论】:
-
定义产品唯一性的是 ProductCode,而不是 UpgradeCode。
-
如果你能描述为什么你需要多个实例就好了。通过改变应用程序设计可能有更好的方法来实现这一点。
-
@Glytzhkof 我有一个应用程序,我可以在其中创建错误修复和不同的新功能。因为我的用户需要能够在 2 个不同的版本上工作,所以我不希望他们只是升级。我希望他们能够并排安装 2 个或更多版本。
-
为此我要做的是创建一个发布版本和一个 QA 版本的设置,它们可以在同一台机器上共存。在我看来,使用实例很快就会失控。