3

我正在尝试使用 WiX 进行安装,我需要使用自定义 WiX 对话框的条目来修改配置文件(不是 XML 或 INI)。

有没有好的方法来做到这一点?也许我需要制作一个 VB 脚本自定义操作?

以下是 wxs 文件的相关位:

   <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="ProgramFilesFolder">
         <Directory Id="INSTALLLOCATION" Name="MyApp">
             <Component Id="ap_cfg" KeyPath="yes" Guid="...">
                 <File Id="CONFIGFILE" Source="myConfig.cfg" />
              </Component>
         </Directory>
      </Directory>
   </Directory>
4

2 回答 2

2

Wix 中没有内置的 Search & Replace 构造,您需要编写自定义操作。
我建议您不要使用 VBScript,而是使用DTF,这将使您能够在 .net 中编写自定义操作并在 Visual Studio 下对其进行调试。

于 2009-07-27T06:44:08.733 回答
2

所以你想安装一个配置文件,在安装过程中动态修改它?

您最好在本机/非托管代码(如 C++)中编写自定义操作,读取各种 MSI 属性并将它们写入您的配置文件。无论如何不要使用密钥路径安装文件,否则一旦修改,它将与原始哈希不匹配并且将被修复。最好只从二进制表或其他东西中写出“默认”配置,然后对其进行修改,这样 Windows 安装程序就不会关心你用它做什么。

我也不建议将托管代码用于您的自定义操作,使用 C++,这样您就可以省去很多麻烦。WiX 工具集源中有一些非常好的示例可以帮助您入门。

最后,在您考虑使用 VBScript 之前,请先阅读为什么VBScript(和 Jscript)MSI CustomActions 很烂

于 2009-07-27T23:41:29.480 回答