我正在将我的产品与其他库链接,试图在多个安装中更容易安装一组目录。目的是重用xml代码,问题是它们必须按照客户要求安装在Root目录中。
所以我在WixLibrary中有ComponentGroup
个。
我在Wix应用程序中设置了我的目录。
但是在安装之前CostFinalize
之后,目录会重置为默认值,而不是我的用户在对话顺序期间选择的默认值。
有没有办法阻止这种情况?
答案 0 :(得分:1)
好的,首先要做的事情是:
CostFinalize
和所有UI
操作之后,我的目录被替换为默认值。Property
,就像我们为WIXUI_INSTALLDIR
所做的那样,总体而言我们有以下内容:
root
文件夹directories
目录无关的4 root
的库。 directory
中的directories
的库。这个库是我们安装的唯一特定。链接所有这是它自己的问题,必须在
Product
,UI
中,并使用外部库中指定的PropertyRef
来完成。此外,请注意,每个PathEdit
都必须设置为Indirect="yes"
,并且您必须设置指向Properties
Directory
的所有间接UI
}
要解决问题非常简单,Microsoft Installer
在用户在安装顺序中设置后重新检查我们的所有文件夹,因此我们需要在用户在{{1 }}。因此UI Sequence
来救援。
以下是一个示例,在Properties
中,您要为UI
InstallUISequence
然后在<Property Id="SETFOLDERFREEZE">0</Property>
<CustomAction Id="caSetPreventChanges" Property="SETFOLDERFREEZE" Value="1"/>
链接该属性。
Product
您在该项目的特定<PropertyRef Id="SETFOLDERFREEZE"/>
<SetDirectory Id="SPECIFIC_FOLDER" Value="[WindowsVolume]MoreStuff" Sequence="both">
<![CDATA[SETFOLDERFREEZE<>"1"]]>
</SetDirectory>
<Property Id="EXTRAFILES_INSTALLDIR" Value="SPECIFIC_FOLDER"/>
中使用Property
EXTRAFILES_INSTALLDIR
,并在可重复使用的UI
中使用SPECIFIC_FOLDER
。
一团糟......但允许重用,并设置一些简单的属性和自定义操作,重新设置文件和文件夹,特别是如果有数百个。