我很难理解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安装程序时正确使用它们之间的区别?
答案 0 :(得分:1)
对于Install Execute阶段,这不是太糟糕了:
http://www.advancedinstaller.com/user-guide/standard-actions.html
此:
典型订单: http://msdn.microsoft.com/en-us/library/aa372038(v=vs.85).aspx
但您总是可以从Windows工具包中获取Orca并查看MSI文件中的安装序列,以查看它们在MSI文件中的具体顺序。
最大的问题是,执行序列有两个阶段,对应于立即的自定义动作(当系统没有任何反应时),并且当变化实际发生时延迟。因此,要在将文件写入磁盘之前立即执行某些操作,您需要在InstallFiles之前使用延迟CA.