在我的WIX安装项目中,我正在从INI文件中读取一些属性。
如果任何Property值作为命令行参数传递,是否有办法在安装期间覆盖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
答案 0 :(得分:1)
INI文件搜索只能在Windows目录中搜索。因此,对于您的方案,您可以尝试使用此线程中提到的自定义操作: Get INI file value with WiX
这样,您只需使用从命令行设置的属性来调整自定义操作。
答案 1 :(得分:1)
您的示例将WEBDIR设置为命令行值,然后通过ini文件值替换。
您可以使用不同的命令行属性名称并将WEBDIR设置为该值(如果已定义),从而获得所需的结果。即。
<SetProperty Id="WEBDIR" After="AppSearch" Value="[DIR]">
DIR
</SetProperty>
请注意,这是对现有代码的补充。然后你可以打电话:
msiexec /i install.msi DIR=C:\MyOverriddenPath
将覆盖ini文件中定义的WEBDIR属性。