非常感谢任何帮助。
我正在编写此WIX安装程序,以便让MSI在我们的服务器上安装Web应用程序。
在我的应用程序中,我有这个属性 - “WEBDIR”。我稍后在我的代码中将此属性用作目录标识。
我以3种方式设置了这个属性。
(方法'A')作为在安静模式下调用msiexec时传递的属性。 [在此处将其设置为C:\ Path1]如下所示:
msiexec /quiet /i My.msi WEBDIR="C:\Path1" /l*v InstallationLog.log
(方法'B')来自IniFileSearch。我在C:\ Windows中有一个名为MySetup.ini的ini文件,其中关键WebsitesDir解析值C:\ Path2。 [在此处将其设置为C:\ Path2]:
<Property Id="WEBDIR">
<IniFileSearch Id="WebsitesDirIni" Name="MySetup.ini" Section="InstallLocations" Key="WebsitesDir" Type="raw"/>
</Property>
(方法'C')使用默认目录结构。 [在此设置为C:\ Path3]如下:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="WEBDIR" Name="Path3">
</Directory>
</Directory>
目前的工作方式如下: - 当方法'A','B'和'C'都设置属性值时,B优先。 - 当只有方法'A'和'C'设置属性值时,'C'优先。
我想要的是能够将优先顺序设置为'A'。如果!'A'然后'B'否则'C'。
这可能吗?
答案 0 :(得分:0)
不,这是不可能的。如果您想控制订单,最佳方法是immediate custom action。由于需要设置installer属性,因此自定义操作必须接收安装句柄(建议使用win32 DLL)。
在正常情况下,安装人员将使用此订单: