wix - 了解 Wix 自定义元素的前后属性

标签 wix windows-installer

我很难理解 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 标签中的 BeforeAfter 属性。 This网站提供了有关 InstallExecuteSequence 的信息,但对于像我这样的新手来说它是模糊的。大多数开发者使用 CostInitializeCostFinalizeInstallInitialize , InstallFinalize。所以我想知道上述属性之间的区别以及在制作 MSI Installer 时何时正确使用它们?

最佳答案

这对于安装执行阶段来说还算不错:

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 文件中的具体顺序。

最大的问题是执行序列有两个阶段,对应于立即的 ccustom 操作(当系统没有任何反应时)和延迟的,当更改实际发生时。因此,要在文件写入磁盘之前立即执行某些操作,您需要在 InstallFiles 之前有一个延迟 CA。

关于wix - 了解 Wix 自定义元素的前后属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382980/

相关文章:

wix - 微星 : How a Service is stopped on uninstall during InstallValidate - could that work anyway?

windows - MSP 与 MSI 封装。哪个用于补丁?

WiX 自定义操作 - 在目标目录中运行应用程序

command-line - 使用命令行从 .wxs 文件创建 msi

wix - 配置 WiX 项目以安装多个版本,但删除相同的次要版本

wix - 创建一个 msi 包,在一台机器上同时安装 32 位和 64 位资源

python - Pysvn 安装程序无法检测到 Python 安装

.net - WiX - 安装 Windows 服务并授予权限

c# - wix:设置 RegistryKey Root HKMU

wix - 特定组件的"ICE38: Component installs to user profile"错误