将安装COM +工作的这种方法吗?(Would this method of installing

2019-10-19 20:43发布

我一直在尝试使用维克斯3.7安装一个COM +组件 。 我一直在使用几个WiX的代码段,我发现这里在计算器上。 虽然我可以生成一个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的做到这一点。 我知道其他人有过安装COM +与维克斯同样的问题,但我不认为任何人的进一步得到了比指责WiX的。

我想知道,如果这将是确定手动从组件服务控制面板,创建一个MSI安装程序导出COM +应用程序。 然后我可以使用dark.exe生成来自微星的WiX源代码。

其实我已经做到了这一点,我可以建立一个MSI是安装COM +应用程序。 但是,这是一个好主意?

我有疑虑:首先,现在得到的GAC注册的组件,即使当我手动注册使用regsvcs它不是在GAC大会。 其次,出口MSI包含三个文件 - 该DLL,其相关联的TLB和另一个“APL”文件,该文件是作为导出的副作用产生一个未记录的内部格式。

其他人会看到使用安装COM +应用程序的这种方法还存在哪些问题? 我应该担心我不知道关于APL文件什么? 如果你能告诉我如何使用WiX的做到这一点我很高兴。 只是希望能够做到安装...

Answer 1:

我只处理了COM +几十倍,即使我是一个有经验的开发人员设置。 看来真正凌乱处理,非常不良记录最糟糕的是:造成间歇性的问题 -最严重的问题进行调试,因为我经历了不同的结果,不同的MSI运行。 通常它的工作,但有时它崩溃,然后它在某些点反复崩溃。 我测试了很多。 我的结论是,由于COM +是某种分布式事件的事件队列的(我不知道太多关于技术)有每个安装运行期间混杂变量充足的机会。

我相信我最终使用从组件服务导出MSI在一个点上,而在其他点我成立了COM +应用程序的系统上,并将其导入到的Installshield在构建时。 我记得有与这两种方法的问题。 我不记得所有的细节,这是很久以前。 Installshield的注册不是从组件服务导出的COM DLL较少的COM设置。 为什么即使交谈Installshield的支持后,我从来没有想通了。 此外,还必须有在构建系统上正确安装的应用程序能够将其导入。

如果我是你,我会使用导出的MSI,因为它是,也许有另一个MSI安装应用程序的其他部分一起单独运行它 - 它嵌入到所有在一个批处理文件或使用引导程序。 我肯定记得试图改变出口MSI和有它在这个过程中反复发作。 某种与杀伤人员地雷问题的文件没有正确地应用到COM +应用程序。 还是那句话:极其糟糕,记录在案,我从来没有想通了为什么会发生。

对不起,不是更多的帮助,但我仍然会张贴此,以确保这些信息就在那里,人们知道他们正在进入与COM +。 使用从组件服务导出的MSI是我的建议,并出口后不要去碰它。



文章来源: Would this method of installing COM+ work?