作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个安装程序(使用 Advanced Installer 制作)。我有一个必须与之交互的应用程序,但我不知道如何找到该安装的 MSIHANDLE。我查看了 Microsoft 引用资料,但没有发现任何对我的问题有帮助的信息。
有什么帮助吗?
最佳答案
MSI 句柄不可用于进程外代码。您需要编写一个自定义操作来承载某种类型的 RPC 机制,您的应用程序随后可以与之交互。这基本上就是 Windows Installer XML (Wix) Deployment Tools Foundation (DTF) 的工作方式。它允许您使用用 C++ 主机包装的 C# 编写自定义操作。 C++ 主机使用 RunDLL32 在进程外执行托管代码(这样它就不会用 CLR 版本标记 msiexec 进程),然后在两者之间创建一个 IPC 隧道。
在您的 C# 中有一个互操作库,它通过 IPC 隧道编码调用,然后 C++ 代码调用 MSI API 并返回结果。
关于c++ - 寻找 MSIHANDLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17380666/
我有一个安装程序(使用 Advanced Installer 制作)。我有一个必须与之交互的应用程序,但我不知道如何找到该安装的 MSIHANDLE。我查看了 Microsoft 引用资料,但没有发现
我是一名优秀的程序员,十分优秀!