【发布时间】:2014-05-26 00:09:46
【问题描述】:
我一直在尝试使用 WiX 3.7 来安装 COM+ 程序集。我一直在使用我在 StackOverflow 上找到的几个 WiX 代码 sn-ps。虽然我可以生成 MSI,但当我安装 msi 时,它会失败并出现如下错误:
RegisterComPlusAssemblies: DLL: C:\Program Files\Kutana\Kappris\Carson.dll
ComPlusInstallExecute: ExceptionInfo: Code='0', Source='System.EnterpriseServices', Description='Could not install type library 'C:\Program Files\Kutana\Kappris\Carson.tlb' into application 'COM+ Carson - Kappris Print Cache'.', HelpFile='', HelpContext='0'
ComPlusInstallExecute: Error 0x80020009: Failed to invoke RegistrationHelper.InstallAssembly() method
ComPlusInstallExecute: Error 0x80020009: Failed to register .NET assembly
ComPlusInstallExecute: Error 0x80020009: Failed to register assembly, key: MyComPlusAssembly
ComPlusInstallExecute: Error 0x80020009: Failed to register assemblies
无论我尝试什么,WiX 都无法做到这一点。我知道其他人在使用 WiX 安装 COM+ 时遇到了同样的问题,但我认为没有人能比指责 WiX 更进一步。
我想知道是否可以从组件服务控制面板手动导出 COM+ 应用程序,这会创建一个 MSI 安装程序。然后我可以使用 dark.exe 从 MSI 生成 WiX 源代码。
我实际上已经这样做了,我可以构建一个安装 COM+ 应用程序的 MSI。但这是个好主意吗?
我有疑虑:首先,组件现在已在 GAC 中注册,即使当我使用 regsvcs 手动注册程序集时它不在 GAC 中。其次,导出的 MSI 包含三个文件 - dll、其关联的 tlb 和另一个“APL”文件,该文件是作为导出副作用生成的未记录的内部格式。
使用这种安装 COM+ 应用程序的方法人们会遇到什么问题?我应该担心我对 APL 文件一无所知吗?如果你能告诉我如何使用 WiX 来做到这一点,我会很高兴的。只是希望能够进行安装...
【问题讨论】:
-
你是在组装 .NET 4.0 吗?这个问题似乎只发生在 .NET 4.0 程序集上。
-
对不起 - 应该说我使用的是 VS2008,程序集是 .NET 3.5
-
这很奇怪,除了 .NET 4.0 之外,我无法重现 COM+ WiX 问题。是否可以共享您的代码? (欢迎私信我。)
标签: wix installation windows-installer com+