1

我有一个包含大约 19 个不同组件的软件。现在我使用 19 个安装项目和 1 个作为主要安装程序的 Winforms 项目。我想迁移到 WiX,因为我想升级到 Visual Studio 2012。我的问题是:在 WiX 中可以做到这一点吗?在我当前的设置中,用户可以通过检查它们来决定要安装哪些组件。是否有可能用 WiX 创造这样的体验?将来是否有可能只升级其中一个组件?

4

1 回答 1

2

是的,Wix 非常适合这种事情,它称它们为Features,您可以简单地设置一组功能(您可以设置Level以便检查您想要默认安装的东西(如果您这样做),并且optional 是未选中的(如果你喜欢的话)。你也可以在一个特性下有一个特性,对于像这样的孩子:

Product  
-Feature 1  
-Feature 2  
--Feature 2 Documentation  
--Feature 2 Admin Tools  
-Feature 3 
(etc)

这些支持标题/描述等,使其美观且用户友好。

要设置更高级的 UI 功能,您需要向安装程序项目添加对 WixUIExtension.dll 的引用,并将 UIRef 元素添加到产品中(请参阅本文),例如:

<UIRef Id="WixUI_FeatureTree" />

您可能希望为要安装的每个“事物”设置一个功能,然后为每个“事物”设置一个 ComponentGroup,因为您可以定义要安装的任意数量的子组件。

这是一个应该执行上述操作的片段(请注意,它没有完全充实,只是一个示例):

<UIRef Id="WixUI_FeatureTree" />

<ComponentGroup Id="Component1">
  <ComponentRef Id="Component1"/>
</ComponentGroup>

<Component Id="Component1" Directory="directorytobeinstalledto">
  <File Id="File1" Source="fileweareinstalling"/>
</Component>

<Feature Id="Feature1" Title="Feature 1" Description="My Feature 1" Level="1">
  <ComponentGroupRef Id="Component1"/>
</Feature>
<Feature Id="Feature2" Title="Feature 2" Description="My Feature 2" Level="1">
  <Feature Id="Feature2.Docs" Title="Feature 2 Documentation" Description="My Feature 2 Documentation" Level="1000"/>
  <Feature Id="Feature2.Admin" Title="Feature 2 Admin Tools" Description="My Feature 2 Administration Tools" Level="1000"/>
</Feature>
<Feature Id="Feature3" Title="Feature 3" Description="My Feature 3" Level="0"/> <!-- disabled! -->
于 2012-12-20T09:06:25.463 回答