理解Wix自定义元素的前后属性

时间:2014-12-09 15:43:12

标签: wix windows-installer

我很难理解Wix 自定义元素的概念。我看了this,它说用于排序自定义操作

现在,如果您考虑以下Wix代码:

<Binary Id="SetupCA"  SourceFile="..\..\ext_library\SetupCA\SetupCA\bin\Release\SetupCA.CA.dll"/>
<CustomAction Id="WRITEFILETODISK" Execute="immediate" BinaryKey="SetupCA" DllEntry="WriteFileToDisk" />
<InstallExecuteSequence>
   <Custom Action="WRITEFILETODISK" Sequence="2"></Custom>
</InstallExecuteSequence>

我想在MSI在我的系统中安装文件之前执行自定义操作 WRITEFILETODISK 。即使我使用 Sequence = 2 ,这也是一种糟糕的方式。因此,我必须使用自定义标记中的之前之后属性。 This网站提供有关InstallExecuteSequence的信息,但对于像我这样的新手来说它很模糊。大多数开发人员使用 CostInitialize CostFinalize InstallInitialize InstallFinalize 。所以我想知道上述属性与何时在制作MSI安装程序时正确使用它们之间的区别?

1 个答案:

答案 0 :(得分:1)

对于Install Execute阶段,这不是太糟糕了:

http://www.advancedinstaller.com/user-guide/standard-actions.html

此:

http://blogs.technet.com/b/alexshev/archive/2008/02/21/how-windows-installer-engine-installs-the-installation-package.aspx

典型订单: http://msdn.microsoft.com/en-us/library/aa372038(v=vs.85).aspx

但您总是可以从Windows工具包中获取Orca并查看MSI文件中的安装序列,以查看它们在MSI文件中的具体顺序。

最大的问题是,执行序列有两个阶段,对应于立即的自定义动作(当系统没有任何反应时),并且当变化实际发生时延迟。因此,要在将文件写入磁盘之前立即执行某些操作,您需要在InstallFiles之前使用延迟CA.