我有一个混乱的情况包装了几个第三方COM组件。实际上,它是一个COM组件和几个.NET程序集。.NET程序集反过来又依赖于同一第三方的内部COM组件。当我注册了COM DLL后,我的代码就可以正常工作了(现在我正在从C#测试)。如果我不这样做,它就会失败。调试它的最好方法是什么?
我生成SxS清单的方法是添加对COM组件的引用,设置Isolated=true,然后将生成的comClass元素从清单中提取到我自己的SxS清单中。而且,它似乎创建了一个Interop.XXX.dll文件:这是用来做什么的?
以下是一些错误消息示例:
"Retrieving the COM class factory for component with CLSID {012A4BEB-99EC-4A65-A4AF-7D09A20B5034} failed due to the following error: 80040154."
"HSREADWRITELib::ReadWriteData, CreateInstance"发布于 2011-07-05 01:52:20
这是你可以从reg-free COM得到的最基本的失败,它没有使用清单或者清单不正确。验证清单中是否有命名COM的<file>元素,以及是否包含具有"clsid“属性的<comClass>元素,该属性的guid与异常消息所抱怨的guid相同。
然后确保清单已嵌入到客户端可执行文件中。你可以通过文件+打开+文件在Visual Studio中打开RT_MANIFEST节点来查看。
https://stackoverflow.com/questions/6574205
复制相似问题