代码之家  ›  专栏  ›  技术社区  ›  Adam Tegen

WIX在配置文件上搜索和替换

  •  3
  • Adam Tegen  · 技术社区  · 15 年前

    我正在尝试使用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>
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   Shay Erlichmen    15 年前

    WIX中没有内置搜索和替换构造,您需要编写自定义操作。
    我建议您不要使用vbscript,而是使用 DTF 这将使您能够在.NET中编写自定义操作并在Visual Studio下对其进行调试。

        2
  •  2
  •   saschabeaumont    15 年前

    那么,您想通过在安装过程中动态修改配置文件来安装它吗?

    最好在像C++这样的原生/非托管代码中编写自定义操作,读取各种MSI属性并将它们写入配置文件。不要以任何速率安装带有密钥路径的文件,否则一旦修改,它将与原始哈希不匹配,并将被修复。最好从二进制表中写出“默认”配置,然后对其进行修改,这样Windows安装程序就不关心您如何处理它了。

    我也不建议使用托管代码来进行自定义操作,使用C++,您将节省自己。 许多 一路上的头痛。在wix工具集源代码中有几个很好的例子可以帮助您开始。

    最后,在你之前 认为 关于使用vbscript,请阅读“为什么” VBScript (and Jscript) MSI CustomActions suck .