2013-10-08 74 views
1

您可以使用registration free COM来避免必须向注册表注册COM DLL。当相同的接口也被注册时,免注册的COM是否工作?

什么我目前想弄清楚是,这是否仍然应该工作,当你试图使用该组件是独立与Windows注册表中注册。

实施例:

...\MyApp\MyApp.exe 
...\MyApp\MyApp.exe.manifest 
...\MyApp\pdm.dll <- manifest points to this DLL for ProcessDebugManager Class 

然而,pdm.dll 的另一版本可以也可以在由另一程序注册表中注册。

MyApp.exe将使用哪个版本?清单中引用的注册表或程序目录中的一个?

这应该是支持?

+0

当你尝试时发生了什么? Manifest是专门为解决由注册表造成的DLL Hell问题而发明的。 –

+0

清单中的一个。 – xMRi

回答

0

当我尝试它时,我的私有DLL由进程加载而不是在注册表中注册的。 (通过ProcessExplorer验证)

我还是不知道知道这是否完全支持,但我想这已经足够了。

+0

它怎么可能*不被支持?它必须工作。免reg-COM的原因之一是允许使用私有DLL,而不是使用相同的typelib,class ID等的公共(注册)等价物。这就是SxS隔离的全部内容。 – Bob77

+0

@ Bob77 - 有效点。虽然这个东西的文档是如此烂,但我不确定我会在这个领域采取任何理所当然的事情。 –