我尝试使用Wix 3.11安装COM +应用程序,但是没有运气。我所拥有的:
如果我将托管包装器安装到GAC上并直接使用64位版本的regsvcs,则所有注册都正确,并且可以使用COM +服务器。
但是我想使用WiX进行安装,因此我尝试了以下操作:
A)使用Heat.exe收集所有数据
我使用heat.exe从wrapper.dll和wrapper.tlb文件中收集了所有数据。然后,我将WiX与“类”和“ typelib”节点一起使用,但是即使在构建或安装过程中没有出现错误,我也从未在ComponentServices mmc中显示COM +应用程序。我在regsvcs之后检查了注册表,并与我的安装程序运行后进行了比较,尽管它看起来对我来说还是一样,
B)使用WiX的ComPlusExtension
然后,我将ComPlusExtension与'ComPlusApplication','ComPlusAssembly'和'ComPlusComponent'节点一起使用。我遵循了https://www.firegiant.com/wix/tutorial/com-expression-syntax-miscellanea/complus-applications/中的示例,但现在在安装过程中回滚了:
ComPlusInstallExecuteCommit: ExceptionInfo: Code='0', Source='System.EnterpriseServices', Description='Failed to load assembly 'c:\program files\testsetupproject\wrapper.dll'.', HelpFile='', HelpContext='0'
我尝试了使用GAC和不使用GAC的示例,但是没有GAC显示了上面的错误,并且GAC抱怨文件不在GAC中(这是真的,我只是要将文件安装到GAC具有相同的文件节点)。
我认为非GAC,ComPlusExtension方法是最有前途的,但是我不知道将两个不同的CLSID(一个来自接口,一个来自实现)放在哪里?也许这是问题的一部分,并且是“无法加载组装错误”的根本原因?
有人在外面用WiX进行COM +注册的工作示例吗?有人可以给出提示和想法来使它工作吗?
任何帮助,塞巴斯蒂安
编辑:我也尝试了最新的v4版本,但结果相同。