在构建WiX安装程序时,如何允许用户选择配置文件?

时间:2011-05-21 11:55:39

标签: windows-7 installer wix

我正在使用WiX XML创建安装包。

我希望用户/安装程序能够做的一件事是从几个配置文件(即config1.txt,config2.txt,config3.txt)中的一个(并且只有一个)中选择安装完成后在同一位置结束(即最终文件是config.txt)。我如何在WiX中执行此操作?

手动安装允许用户将所需的配置文件复制到最终位置/文件。即,如果用户想要使用config2.txt,则将config2.txt复制到config.txt。他负责该计划。然后,如果他需要使用config1.txt,他会将config1.txt复制到config.txt并运行该程序。

知道如何在WiX中执行此操作吗?

提前致谢!

-Adeena

2 个答案:

答案 0 :(得分:1)

我使用CopyFile标签解决了类似的问题;

某处我有<Directory>,其中包含以下内容:

<Component Id="Config_6.txt" Guid="{}">
  <File Id="Config_6.txt" Name="Config_6.txt" KeyPath="yes" Source="..\..\..\bin\Config_6.txt" />
</Component>
<Component Id="Config.txt" Guid="{}">
  <File Id="Config.txt" Name="Config_8.txt" KeyPath="yes" Source="..\..\..\bin\Config.txt" />
</Component>
<Component Id="Config_7.txt" Guid="{}">
  <File Id="Config_7.txt" Name="Config_7.txt" KeyPath="yes" Source="..\..\..\bin\Config_7.txt" />
</Component>

<Component Id="R8_Config.txt" Guid="{}">
  <CreateFolder/>
  <CopyFile Id="R8_Config.txt" FileId="Config.txt" DestinationName="Config.txt"/>
</Component>
<Component Id="R7_Config.txt" Guid="{}">
  <CreateFolder/>
  <CopyFile Id="R7_Config.txt" FileId="Config_7.txt" DestinationName="Config.txt"/>
</Component>
<Component Id="R6_Config.txt" Guid="{}">
  <CreateFolder/>
  <CopyFile Id="R6_Config.txt" FileId="Config_6.txt" DestinationName="Config.txt"/>
</Component>

在功能部分中有这样的内容:

<Feature Id="Config" Title="Config directory" Display="expand" Level="1" ConfigurableDirectory="Config">
  <Feature Id="Config8" Title="Config 8" Level="1" Description="Select only one  version!">
    <ComponentRef Id="R8_Config.txt"/>
  </Feature>
  <Feature Id="Config7" Title="Config 7" Level="1002" Description="Select only one  version!">
    <ComponentRef Id="R7_Config.txt"/>
  </Feature>
  <Feature Id="Config6" Title="Config 6" Level="1004" Description="...">
    <ComponentRef Id="R6_Config.txt"/>
  </Feature>
</Feature>

要显示功能,请添加包含CustomizeDlg的UIRef,例如:

<UIRef Id="WixUI_FeatureTree" />

此解决方案的缺点是用户可以选择多个配置文件。这可能会导致最后一个成为活跃的。

答案 1 :(得分:1)

这是一个网络应用程序吗?这些ini文件或xml文件还是别的什么?我更喜欢应用程序配置在首次启动时安装后由应用程序本身完成(如果它是exe文件)。安装是关于获取默认设置和文件,在我看来,任何自定义配置都超出了初始部署的范围。

Wix提供了在安装过程中更新xml文件的功能,下面是一个示例:http://www.tramontana.co.hu/wix/lesson6.php#6.10。如果它是XML文件,这将允许您将特定的配置设置写入文件。

没有什么可以阻止您在同一个文件夹中安装多个相同配置文件,并允许用户在它们之间手动切换。如果切换基础文件,通常会改变哪些值?一个或多个设置?