|
|
1
5
只需将程序集依赖项添加到指向COM服务器dll的服务器/客户端dll清单中。 请记住,程序集清单与“应用程序”清单不同:程序集清单描述程序集:为其命名,并列出其DLL。 应用程序清单是rt_清单嵌入资源,它描述了当前模块的依赖关系。 因此,在最后的分析中,您将:
从技术上讲,可以使用dll的名称调用程序集,并将程序集清单和dll清单合并在一起-Win32加载器支持此功能,但在应用程序清单中有效的某些设置在程序集清单中无效,这可能导致无法加载生成的程序集。这也使得数字签名变得非常困难。 警告exe必须具有清单:通常exe的清单设置进程默认激活上下文。我不能百分之百地确定当exe没有清单时Windows的行为,但我很确定dll中的清单仍将被处理。 这意味着问题归结为cocreateinstance中缺少隔离支持——出于某种原因——默认情况下——cocreateinstance只在默认激活上下文中查找reg-free-com条目。 重写它的方法是使用 Activation Context API 基本方法是调用:
您可以添加/d隔离_-aware_-enabled来包装大多数受激活上下文影响的Windows调用,因为某些原因CoCreateInstance没有包装:/ |