我正在尝试创建一个安装程序(使用WIX 3.11),它可以安装更多同一程序的实例。我设法创建了一个安装程序来执行该操作,但是在尝试更新不同实例时安装程序不起作用
这是我的代码
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Name="ABC Default" Manufacturer="Inc" Language="1033" Version="1.0.1.7"
Id="*"
UpgradeCode="{3984A5B2-5CDA-4EC8-933A-089E46E2D688}">
<Package Id="*" InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Keywords="Installer" Description="Installer"
Comments="Instance installer" Manufacturer="Me"
Platform="x64"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<UI>
<UIRef Id="WixUI_InstallDir" />
<!--Skip license dialog-->
<Publish Dialog="WelcomeDlg"
Control="Next"
Event="NewDialog"
Value="InstallDirDlg"
Order="2">1</Publish>
<Publish Dialog="InstallDirDlg"
Control="Back"
Event="NewDialog"
Value="WelcomeDlg"
Order="2">1</Publish>
</UI>
<MajorUpgrade AllowSameVersionUpgrades="yes" Schedule="afterInstallInitialize" DowngradeErrorMessage="A later version of [ProductName] is already installed" />
<MediaTemplate />
<Property Id="INSTANCEID" Value="0" />
<InstanceTransforms Property="INSTANCEID" >
<Instance Id="DEV" ProductCode="*" UpgradeCode="{BB75B4BE-6217-4FDA-8BAC-C46B402AC0FB}" ProductName="ABC Dev" />
<Instance Id="TEST" ProductCode="*" UpgradeCode="{ACFEFC2F-0D48-4640-9BBC-6E1162F9D1E7}" ProductName="ABC Test" />
</InstanceTransforms>
<Feature Id="ProductFeature" Title="Products" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
<CustomAction Id="SetInstanceDirectory"
Property="InstanceDirectory"
Value="[INSTALLFOLDER][INSTANCEID]\"/>
<InstallExecuteSequence>
<Custom Action="SetInstanceDirectory"
Before="CostFinalize"><![CDATA[InstanceDirectory = ""]]></Custom>
</InstallExecuteSequence>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="Inc" >
<Directory Id ="InstanceDirectory" Name="Instance"/>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="InstanceDirectory">
<Component Id="NotepadComponent" Guid="{52BCDD67-47F3-4F04-A7F9-6CAB42010CDE}" MultiInstance="yes">
<File Source="c:\Windows\System32\notepad.exe"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
可以看出安装程序非常简单,但我需要一些关于更新部分的帮助。
安装程序:
更新程序:
尝试更新DEV实例时,安装程序会尝试更新默认安装,通知用户安装是最新的,并且可以进行修复或卸载。
请帮忙。我一直在看这个问题一个多星期了。
/肯尼斯
答案 0 :(得分:0)
MSINEWINSTANCE=1
应始终指定,因为您的更新是作为主要升级提供的。
我刚看了一些使用实例转换的代码。首次安装和升级安装之间没有区别,命令行始终是相同的。
这是有道理的,因为主要升级就像新产品安装一样,唯一的区别是它会自动删除旧版本。