Installshield:套件和 MSI 功能
Installshield: suite and MSI feature
我有点苦恼于与 msi 功能套件相关的功能。
我有一个包含多个 MSI 文件的套件项目。在一个 MSI 中,我有一些我想选择安装的功能。
我在套件项目中添加了这个,以便将它与套件功能列表中的复选框相关联。
":MSIPackageFeatureName" next to
"Selection Name="NewFeature" DisplayName="ID_STRING"
Install="{00000000-0000-0000-0000-000000000000}"
但无论如何都会安装该功能,即使未选中该复选框也是如此。
所以我的第一个问题是,我应该添加一些自定义操作来更改安装级别吗?或者,如果未选中该复选框,我该如何防止安装该功能。
+奖金。出于某种原因,如果我检查它。其他一些文件没有安装,这些文件与该功能无关。
InstallShield Suite 可以在其中一个 MSI 中处理 selection 功能,但这并不容易。通常,通过沿着这些功能线将 MSI 分成两个(或更多)并将这些单独的 MSI 包含在套件中,您可能会发现重构 MSI 更容易。
如果您无法重构 MSI 的组成(可能是第三方 MSI,或者重构比替代方案更糟糕),您可以遵循 Configuring Package Features from a Suite/Advanced UI or Advanced UI Installer 上的指南。特别注意以下细微之处:
- 以
<Selection ... Install="{guid}"/>
格式包含引用整个包的 Selection 元素很重要
- 此外,您需要多个(最好是子)选择元素,它们引用
<Selection ... Install="{guid}:FeatureName"/>
格式的特征名称;请注意,一旦您列出一个 {guid}:FeatureName,所有功能都必须在某处列出(和 selected),否则它们将不会被安装。
在您的示例中,您有一个空 guid 而不是套件分配给包的 guid,并且您没有显示指定功能名称的子元素。因此,有可能通过列出一个功能而不列出另一个功能,无论您做什么,其他功能都被排除在安装之外 select。
也不清楚您是指使用 InstallationFeatures 页面显示复选框,还是创建自己的复选框来切换单个功能(后者需要引用伪属性 FEATURE[<em>feature-name</em>].actionState
其中 feature-name 是您的 Selection 元素中的名称)。
我有点苦恼于与 msi 功能套件相关的功能。 我有一个包含多个 MSI 文件的套件项目。在一个 MSI 中,我有一些我想选择安装的功能。
我在套件项目中添加了这个,以便将它与套件功能列表中的复选框相关联。
":MSIPackageFeatureName" next to
"Selection Name="NewFeature" DisplayName="ID_STRING" Install="{00000000-0000-0000-0000-000000000000}"
但无论如何都会安装该功能,即使未选中该复选框也是如此。
所以我的第一个问题是,我应该添加一些自定义操作来更改安装级别吗?或者,如果未选中该复选框,我该如何防止安装该功能。
+奖金。出于某种原因,如果我检查它。其他一些文件没有安装,这些文件与该功能无关。
InstallShield Suite 可以在其中一个 MSI 中处理 selection 功能,但这并不容易。通常,通过沿着这些功能线将 MSI 分成两个(或更多)并将这些单独的 MSI 包含在套件中,您可能会发现重构 MSI 更容易。
如果您无法重构 MSI 的组成(可能是第三方 MSI,或者重构比替代方案更糟糕),您可以遵循 Configuring Package Features from a Suite/Advanced UI or Advanced UI Installer 上的指南。特别注意以下细微之处:
- 以
<Selection ... Install="{guid}"/>
格式包含引用整个包的 Selection 元素很重要
- 此外,您需要多个(最好是子)选择元素,它们引用
<Selection ... Install="{guid}:FeatureName"/>
格式的特征名称;请注意,一旦您列出一个 {guid}:FeatureName,所有功能都必须在某处列出(和 selected),否则它们将不会被安装。
在您的示例中,您有一个空 guid 而不是套件分配给包的 guid,并且您没有显示指定功能名称的子元素。因此,有可能通过列出一个功能而不列出另一个功能,无论您做什么,其他功能都被排除在安装之外 select。
也不清楚您是指使用 InstallationFeatures 页面显示复选框,还是创建自己的复选框来切换单个功能(后者需要引用伪属性 FEATURE[<em>feature-name</em>].actionState
其中 feature-name 是您的 Selection 元素中的名称)。