Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 具有目录属性的SetDirectory_Wix - Fatal编程技术网

Wix 具有目录属性的SetDirectory

Wix 具有目录属性的SetDirectory,wix,Wix,我正在尝试构建一个多实例安装程序,该安装程序在INSTALLDIR目录下创建一个具有适当名称的目录: 非(INSTANCEID=“默认”) 我希望至少INSTALLDIR属性在InstallExecute序列开始时被传入,即使大多数其他目录还没有由CostFinalize从中解析出来。在CostFinalize之前,是否有任何方法可以找到用户指定的安装目录,以便正确设置SERVERDIR路径 更新1:我猜在大多数情况下,INSTALLDIR本身由CostFinalize解决,除非它是在命令

我正在尝试构建一个多实例安装程序,该安装程序在INSTALLDIR目录下创建一个具有适当名称的目录:


非(INSTANCEID=“默认”)
我希望至少INSTALLDIR属性在InstallExecute序列开始时被传入,即使大多数其他目录还没有由CostFinalize从中解析出来。在CostFinalize之前,是否有任何方法可以找到用户指定的安装目录,以便正确设置SERVERDIR路径


更新1:我猜在大多数情况下,INSTALLDIR本身由CostFinalize解决,除非它是在命令行上设置的(因此我认为它是空的)。我可以有自己的属性,默认为INSTALLDIR的位置,除非用户设置了它。需要弄清楚UI是如何传递它的——希望它能正常地传递INSTALLDIR



更新2:UI通过INSTALLDIR。但它也会传递所有其他已解析的目录,包括SERVERDIR下的目录。我需要在这两个序列中运行SetDirectory操作,并自己创建一个默认的INSTALLDIR属性。我还应该给自己买一个。

SetDirectory可以使用格式化字符串中的属性,但在设置这些属性时需要小心。在普通UI安装中:

  • InstallUISequence运行
    • CostFinalize解析并设置目录属性
    • 显示对话框(INSTALLDIR已由CostFinalize设置)
  • 安装执行运行
    • 安装目录属性被推送到序列中
SetDirectory元素在CostFinalize之前运行,它使用的路径必须是完整路径。要使SERVERDIR属性基于上述INSTALLDIR属性,请确保已设置默认INSTALLDIR,该默认INSTALLDIR表示解析的正常发生方式:

INSTALLDIR=“”
非(INSTANCEID=“默认”)