不使用全局程序集缓存 (GAC) 注册托管程序集到 COM

5

我想知道是否有可能在不将程序集注册到GAC的情况下向COM注册程序集。我们需要部署一些.NET库,这些库通过CCW暴露给经典ASP使用。但是部署非常麻烦。

2个回答

5

是的,使用regasm.exe/codebase关键字可以实现。如果你没有使用/codebase,那么regasm.exe只会将程序集的文件名写入注册表中,因此除非该程序集在全局程序集缓存(GAC)中,否则.NET运行时无法找到它。而使用/codebase,它将写入完整路径,当消费者调用CoCreateInstance()时,.NET将很高兴地找到该程序集。


0

是的,您可以在不将程序集放入全局程序集缓存中的情况下使用Regasm。例如,我将ASP和ASP.NET站点与bin文件夹中的.NET程序集混合使用。其中一些程序集暴露给COM并从bin文件夹中注册。

当然,这些程序集对应用程序是唯一的,并且不会被其他应用程序共享。这并不意味着不可能,您可能会选择将这些dll复制到中立位置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接