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

Windows 7 如何允许用户在构建WiX安装程序时选择配置文件?,windows-7,installation,wix,Windows 7,Installation,Wix,我正在使用WIXXML创建一个安装包 我希望用户/安装程序能够做的一件事是从多个配置文件(即config1.txt、config2.txt、config3.txt)中选择一个(且仅选择一个),这些文件在安装完成后将在同一位置结束(即,最终文件为config.txt)。我如何在WiX中做到这一点 手动安装让用户将所需的配置文件复制到最终位置/文件。i、 例如,如果用户想要使用config2.txt,他会将config2.txt复制到config.txt。他负责这个项目。然后,如果需要使用confi

我正在使用WIXXML创建一个安装包

我希望用户/安装程序能够做的一件事是从多个配置文件(即config1.txt、config2.txt、config3.txt)中选择一个(且仅选择一个),这些文件在安装完成后将在同一位置结束(即,最终文件为config.txt)。我如何在WiX中做到这一点

手动安装让用户将所需的配置文件复制到最终位置/文件。i、 例如,如果用户想要使用config2.txt,他会将config2.txt复制到config.txt。他负责这个项目。然后,如果需要使用config1.txt,他会将config1.txt复制到config.txt并运行程序

你知道在WiX里怎么做吗

提前谢谢


-Adeena

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

我在某处有一个
包含以下组件:

<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>

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

这是一个web应用程序吗?这些是ini文件还是xml文件或其他文件?我更喜欢应用程序配置在第一次启动时安装后由应用程序本身完成(如果是exe文件)。安装是为了获得默认设置和文件,我认为任何自定义配置都超出了初始部署的范围

Wix提供了在安装期间更新xml文件的功能,下面是一个示例:。如果文件是XML文件,这将允许您向该文件写入特定的配置设置


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

不,它不是web应用程序。是的,用户可以手动更改配置文件-现在就是这样做的。我只是想让它更简单-减少用户必须采取的步骤。我完全理解在应用程序中这样做的意义,但目前这是不可能的,因为我没有修改应用程序的权限-我只是制作安装包。(这是一个爱好项目,团队成员的时间有限-因此我必须进行最简单的安装)多一点背景。。。这是一个为竞赛而提交的申请,所以它不会分发给公众。去年,有人担心安装太复杂了,所以我尽量简化。可能无法删除所有步骤-手动更改配置可能必须保留。最后。。。配置文件是基于文本的文件,而不是XML文件。。。我认为您可以在对话框中添加一个Combobox控件,以便用户选择所需的配置。根据用户选择,您可以设置一个属性,该属性用于有条件地安装组件或更改这些功能的值。这样复制文件会保留原始文件。您也不能将delete=“yes”添加到CopyFile元素,因为if通过id引用文件。我知道这一点的唯一原因是因为我遇到了相同的问题,没有解决方案!:(您可以安装配置文件。在安装过程中,您要求用户选择配置。然后在
InstallFinalize
之前,您计划一个自定义操作,将用户选择的配置复制到config.txt文件。
<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>
<UIRef Id="WixUI_FeatureTree" />