我有两个功能 . 主要功能和第二个可选功能(使用UI对话框设置的属性进行管理) .

如果我执行安装并禁用可选功能的安装,则产品将在没有可选功能的情况下安装 . (没关系)

如果我再次执行.msi并选择安装可选功能 - 它将无法安装 .

唯一的方法是我卸载产品并重新安装它,并选择此可选功能 .

我也试过了两个选项 REINSTALL=ALLINSTALLMODE=AMUS ,但没有任何改变 .

这是我的WiX代码:

<Feature Id="ProductFeature" Title="MAIN" Level="1">
  <ComponentGroupRef Id="MAIN_GROUP" />
</Feature>

<Feature Id="OptionalFeature" Title="OPTIONAL" Level="1">
  <Condition Level="3000"><![CDATA[CHECKBOX_UI <> "1"]]></Condition>
  <ComponentGroupRef Id="OPTIONAL_GROUP" />
</Feature>

有没有办法在第二次安装时添加功能,使用相同版本的安装程序?

我想在安装程序的第二次运行期间修改已安装的产品 .

这是初始自定义对话框的代码,其中我使用CTM_NEWF_Cbx复选框作为条件属性来管理组件条件安装 .

<Dialog Id="C_TypeInstallationDlg" Width="370" Height="270" Title="Bla bla bla">
  <Control Type="Bitmap" Id="CTM_Bmp" Width="140" Height="235" X="0" Y="0" Text="WizardBackgroundBmp" />
  <Control Type="Line" Id="CTM_Line" Width="370" Height="1" X="0" Y="235" />
  <Control Type="PushButton" Id="CTM_ExitBtn" Width="56" Height="17" X="306" Y="246" Text="Cancel">
    <Publish Event="EndDialog" Value="Exit" />
  </Control>
  <Control Type="Text" Id="CTM_WelcomeLbl" Width="200" Height="17" X="150" Y="15" Text="Bla bla bla" />
  <Control Type="Text" Id="CTM_CompanyDescriptionLbl" Width="197" Height="41" X="162" Y="135" Text="Bla bla bla" />
  <Control Type="Text" Id="CTM_DialogTitleLbl" Width="126" Height="23" X="9" Y="15" Text="Bla bla bla" Transparent="yes" />
  <Control Type="Text" Id="CTM_ProductDescriptionLbl" Width="197" Height="44" X="162" Y="66" Text="Bla bla bla" />
  <Control Type="Text" Id="CTM_InstallerDescriptionLbl" Width="124" Height="64" X="9" Y="36" Text="Bla bla bla" Transparent="yes" />
  <Control Type="RadioButtonGroup" Property="TYPEMACHINE_PROP" Id="CTM_TypeMachineRbtn" Width="213" Height="120" X="153" Y="48">
    <RadioButtonGroup Property="TYPEMACHINE_PROP">
      <RadioButton Text="Bla bla bla" Height="17" Value="1" Width="200" X="0" Y="0" />
      <RadioButton Text="Bla bla bla" Height="17" Value="2" Width="200" X="0" Y="68" />
    </RadioButtonGroup>
  </Control>
  <Control Type="PushButton" Id="CTM_NextBtn" Width="56" Height="17" X="237" Y="246" Text="Avanti &gt;" Default="yes">
    <Publish Order="1" Event="DoAction" Value="CA_GetNextDlg">1</Publish>
    <Publish Order="2" Event="NewDialog" Value="[NEXT_DIALOG]">1</Publish>
    <Publish Order="3" Value="[NEXT_DIALOG]" Property="CURRENT_DIALOG">1</Publish>
  </Control>
  <Control Type="PushButton" Id="CTM_BackBtn" Width="56" Height="17" X="179" Y="246" Text="&lt; Back" Disabled="yes"></Control>
  <Control Type="CheckBox" Id="CTM_NEWF_Cbx" Width="212" Height="17" X="153" Y="183" Text="!!!!- THIS IS THE NEW FEATURE -!!!!!" CheckBoxValue="1" Property="INSTALL_NEW_FEATURE" />
  <Control Type="Text" Id="CTM_NEWF_DetailsLbl" Width="196" Height="21" X="162" Y="205" Text="Bla bla bla" />
</Dialog>

谢谢 :)