c# - Microsoft.mshtml.dll 重新分发问题

标签 c# dll licensing bho

<分区>

我制作了一个内部使用 Microsoft.mshtml.dll 的 C# BHO。现在要打包此 BHO,我是否还需要分发 Microsoft.mshtml.dll。可以将此 dll 与我的 dll 一起添加吗?任何法律问题?这个 BHO 在开发环境中工作正常,因为 Microsoft.mshtml.dll 存在于 visual studio (C:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll) 猜测中,这不会每台机器上的案例。请建议。

最佳答案

它是一个互操作程序集,不包含任何代码。只是声明,从 COM 类型库自动生成。因此重新分配很好。它安装在 GAC 中的唯一原因是因为它是一个 PIA,一个主要的互操作程序集。当您编写一个在您自己的公共(public)方法中公开任何接口(interface)的类库时,您只需要一个 PIA。此类库的客户端还需要对互操作程序集的引用才能使用您的方法,并且它必须与您使用的方法完全相同。这通常很少见,尤其是在 BHO 中。

如果您使用 VS2010 之前的 Visual Studio 版本,则只需将 Copy Local 属性设置为 True 以供程序集引用。重新构建,您将获得一份 DLL 副本,您可以将其与您自己的可执行文件一起部署。

对于 VS2010 及更高版本,您确实希望使用嵌入互操作类型功能。它将接口(interface)声明嵌入到您自己的程序集中,只有您实际使用的那些。这对保持 BHO 的可分配大小更小有很大帮助。并避免部署该互操作程序集的需要。强烈推荐。

关于c# - Microsoft.mshtml.dll 重新分发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19051604/

相关文章:

android - 将 .NET dll 移植到不同的平台

ubuntu - Install4j 5.1 - headless (headless) ubuntu 服务器上的 float 许可证设置

javascript - AVM2 和 ABC(Adobe 的 ActionScript 字节码格式)规范许可..我可以使用它吗?

c# - 如何在创建子目录中立即应用日期格式

c# - Winforms 中自定义控件绘画的最佳实践?

c# - ef 中的奇怪语法

c# - 尝试将 List<T> 分配给 List<U> 时出现无法转换错误,其中 U 是 T 的接口(interface)

python-3.x - 如何修复 Visual Studio Code 中的 'ImportError: DLL load failed'(随 Anaconda 安装的软件包)

c# - 每个目标 .NET 平台的编译是否不同?

licensing - "Scenic Ribbon"需要 MS 许可吗?