修复多语言包
Repair in Multi Language Bundle
我有一个带有语言选择单选按钮的 WixStandardBootstrapper
:
<Button Name="InstallEnglish" HexStyle="000009" X="180" Y="150" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallEnglishRadio)</Button>
<Button Name="InstallGerman" HexStyle="000009" X="180" Y="170" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallGermanRadio)</Button>
这工作正常并相应地设置变量 InstallEnglish
和 InstallGerman
。
基于这些变量,我启动了我的 MSI:
<MsiPackage Name="Installer"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
InstallCondition="InstallEnglish"
DisplayInternalUI="yes" />
<MsiPackage Name="Installer_de"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
InstallCondition="InstallGerman"
DisplayInternalUI="yes">
<MsiProperty Name="TRANSFORMS" Value=":de-DE.mst"/>
</MsiPackage>
安装可以按预期工作,但是当在例如之后选择维修时德文安装,先修复德文安装,卸载英文安装删除德文安装。
这并不意外,因为 InstallCondition
只检查安装条件。但是我该如何处理维修呢?
只指定一次 MSI 并动态生成 TRANSFORMS 值(例如,我为此使用自定义托管引导程序)。
<MsiPackage Name="Installer"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
DisplayInternalUI="yes">
<MsiProperty Name="TRANSFORMS" Value="[Transforms]"/>
</MsiPackage>
我有一个带有语言选择单选按钮的 WixStandardBootstrapper
:
<Button Name="InstallEnglish" HexStyle="000009" X="180" Y="150" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallEnglishRadio)</Button>
<Button Name="InstallGerman" HexStyle="000009" X="180" Y="170" Width="100" Height="15" TabStop="yes" FontId="5" HideWhenDisabled="no">#(loc.InstallGermanRadio)</Button>
这工作正常并相应地设置变量 InstallEnglish
和 InstallGerman
。
基于这些变量,我启动了我的 MSI:
<MsiPackage Name="Installer"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
InstallCondition="InstallEnglish"
DisplayInternalUI="yes" />
<MsiPackage Name="Installer_de"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
InstallCondition="InstallGerman"
DisplayInternalUI="yes">
<MsiProperty Name="TRANSFORMS" Value=":de-DE.mst"/>
</MsiPackage>
安装可以按预期工作,但是当在例如之后选择维修时德文安装,先修复德文安装,卸载英文安装删除德文安装。
这并不意外,因为 InstallCondition
只检查安装条件。但是我该如何处理维修呢?
只指定一次 MSI 并动态生成 TRANSFORMS 值(例如,我为此使用自定义托管引导程序)。
<MsiPackage Name="Installer"
SourceFile="Installer.msi"
Vital="yes"
Visible="no"
DisplayInternalUI="yes">
<MsiProperty Name="TRANSFORMS" Value="[Transforms]"/>
</MsiPackage>