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