我很难理解 Wix 的 Custom 元素的概念。我读了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>
我希望自定义操作 WRITEFILETODISK 在 MSI 将文件安装到我的系统之前执行。尽管我使用了 Sequence=2,但这是一个糟糕的方法。所以我必须使用 Custom 标签中的 Before 或 After 属性。 This网站提供了有关 InstallExecuteSequence 的信息,但对于像我这样的新手来说它是模糊的。大多数开发者使用 CostInitialize、CostFinalize、InstallInitialize , InstallFinalize。所以我想知道上述属性之间的区别以及在制作 MSI Installer 时何时正确使用它们?
最佳答案
这对于安装执行阶段来说还算不错:
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 文件中的具体顺序。
最大的问题是执行序列有两个阶段,对应于立即的 ccustom 操作(当系统没有任何反应时)和延迟的,当更改实际发生时。因此,要在文件写入磁盘之前立即执行某些操作,您需要在 InstallFiles 之前有一个延迟 CA。
关于wix - 了解 Wix 自定义元素的前后属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382980/