Windows installer 带有embeddedchainer的msi在卸载时失败;“把手不好”;

Windows installer 带有embeddedchainer的msi在卸载时失败;“把手不好”;,windows-installer,Windows Installer,我终于让我的嵌入式链表msi运行起来,通过C#chainer.exe中的Installer.InstallProduct安装了四个子msi(如stackoverflow上的唯一链表示例所述)。 我的问题:如果我在调用“transaction.Join”后卸载该包,这次它会失败,并出现MSI错误:错误句柄。我必须在taskmanager中终止msiexec.exe进程,然后一切正常运行 有什么建议吗 附录:我使用的是Windows Installer 4.5,MSIExtedChainer表中只有

我终于让我的嵌入式链表msi运行起来,通过C#chainer.exe中的Installer.InstallProduct安装了四个子msi(如stackoverflow上的唯一链表示例所述)。 我的问题:如果我在调用“transaction.Join”后卸载该包,这次它会失败,并出现MSI错误:错误句柄。我必须在taskmanager中终止msiexec.exe进程,然后一切正常运行

有什么建议吗


附录:我使用的是Windows Installer 4.5,MSIExtedChainer表中只有一个条目。四个msi由chainer可执行文件依次处理。

以下是一些检查建议:

1) Windows Installer 4.0及更早版本不支持多包Windows Installer安装的事务处理。需要Windows Installer 4.5或更高版本才能将多个程序包的安装作为单个事务回滚。此处列出了安装程序在安装、修复、更新或删除应用程序时可能导致问题的Windows Installer功能:


2) 如果表中有多个条目。只能启动一个嵌入式链表。如果多个条目都已设置为运行,则未定义哪个条目将运行。

最后,问题得到了解决:c#嵌入式链表的标准示例中存在一个错误:

行中: IntPtr ptr=新的IntPtr(转换为32(args[0],16)); 必须将“16”改为“10”

否则,如果嵌入式链表启动的事务超过10个(在我的设置中,安装了5个子msi),则“transaction.Join”使用的句柄在某个点上会出错,并给出“bad handle”错误


非常感谢微软在这个问题上的帮助

如上所述,我使用的是Windows Installer 4.5,MSIMembeddedChainer表中只有一个条目。任何帮助都将不胜感激。。。