.net - 在延迟的自定义操作之间传递数据

标签 .net wix windows-installer custom-action

我需要将数据从一个延迟的 .NET 自定义操作传递到另一个,但我不知道该怎么做。

延迟的自定义操作无法访问 Windows Installer session ,因此 session 属性不是一个选项。目标延迟自定义操作已经采用了从早期的即时自定义操作设置的自定义操作数据,但我似乎无法从源延迟操作中修改它。

我也尝试过在自定义操作类上使用静态属性,但正如预期的那样,这也不起作用。

我可以在源操作中写入注册表并在目标操作中将其读回,但这似乎有些老套。在延迟的自定义操作之间传递数据肯定有更标准的方法吗?

最佳答案

是的,好问题。

Surely there is a more standard way to pass data between deferred custom actions?

没有,据我所知,没有这样的标准体系。

老实说,延迟操作可以通过 CustomActionData 读取属性已经是奇迹了——这是在生成执行脚本时通过某种元数据完成的。延迟操作只能访问少数有限的属性,并且它不能与 MSI 数据库交互

参见 Obtaining Context Information for Deferred Execution Custom Actions更多。这不是 WiX 限制,而是 MSI。

如您所说,查看临时文件夹或注册表 - 尽管不一定方便或好用 - 如果仔细完成,它会非常好地工作。

如果您有兴趣了解更多有关 MSI 架构的信息,这是一个很好的链接:http://bonemanblog.blogspot.co.uk/2005/10/custom-action-tutorial-part-i-custom.html

关于.net - 在延迟的自定义操作之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27594036/

相关文章:

.net - fsi.exe 程序集 : Anyone know how to embed it?

安装新版本后,WIX Burn 升级会删除 ExePackages

c# - 如何通过调用带字符串参数的 WiX 自定义操作的 Installshield 创建自定义操作?

windows - 如何使用 WiX Burn 在 Windows 8 和 Windows Server 2012 上安装 .NET Framework 3.5?

c# - 在 .NET 自定义操作中检测静默安装

.NET:是否可以在安装 .NET 4.0 后安装 .NET frameworks 2.0 和 3.5?

c# - 如何更改 C# .NET 3.5 中进度条的颜色?

c# - 从 ASP.NET MVC 中的布局调用操作方法

wix - 新的 IsWiX 安装项目无法构建 - 未定义的预处理器变量

windows-installer - 适用于 Techsmith Snagit 的 Windows 安装程序的不常见 UI 布局