【问题标题】:WIX: Override IniFileSearch while installing if MSI has command line paramsWIX:如果 MSI 具有命令行参数,则在安装时覆盖 IniFileSearch
【发布时间】:2011-09-13 02:29:55
【问题描述】:

在我的 WIX 设置项目中,我正在从 INI 文件中读取一些属性。

如果任何属性值作为命令行参数传递,是否有办法在安装期间覆盖 IniFileSearch。 (我正在尝试这样做,以便它也适用于静默安装。)

代码片段:

<Property Id="WEBDIR" >
   <IniFileSearch Id="WebsitesDirIni" Name="Setup.ini" Section="InstallLocations" Key="WebsitesDir" Type="raw"/>
</Property>

我想要的是,如果我要执行如下所示的 msi,它会接受命令行参数给出的值,而不是在 ini 文件中查找值。

msiexec /i install.msi WEBDIR=C:\MyOverriddenPath

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    INI 文件搜索只能在 Windows 目录中搜索。因此,对于您的场景,您可以尝试使用此线程中提到的自定义操作: Get INI file value with WiX

    这样,您可以简单地使用您从命令行设置的属性来调整自定义操作。

    【讨论】:

      【解决方案2】:

      您的示例会将 WEBDIR 设置为命令行值,然后将其替换为 ini 文件值。

      您可以通过使用不同的命令行属性名称并将 WEBDIR 设置为该值(如果已定义)来实现您想要的结果。即

          <SetProperty Id="WEBDIR" After="AppSearch" Value="[DIR]">
              DIR
          </SetProperty>
      

      请注意,这是对现有代码的补充。然后你可以打电话:

      msiexec /i install.msi DIR=C:\MyOverriddenPath
      

      这将覆盖 ini 文件中定义的 WEBDIR 属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-03
        • 2013-08-31
        • 2013-07-17
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        相关资源
        最近更新 更多