Microsoft.mshtml.dll重新分发问题

6
我制作了一个使用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),但这不是每台机器上都有的情况。请建议。

4
我投票关闭此问题,因为它涉及许可或法律问题,而不是编程或软件开发。请参见这里这里获取详细信息,以及[帮助中心]获取更多信息。 - JasonMArcher
1个回答

7
这是一个Interop程序集,它不包含任何代码,只是从COM类型库自动生成的声明。因此,重新分发它是可以的。它安装在全局程序集缓存中的唯一原因是因为它是主要的Interop程序集(PIA)。仅当您编写公共方法中公开任何接口的类库时才需要PIA。这个类库的客户端还需要参考Interop程序集才能使用您的方法,并且必须是与您使用的完全相同的那一个。一般情况下很少用到,特别是在BHO中。
如果您使用的是早于VS2010版本的Visual Studio,则只需将程序集引用的“复制本地”属性设置为True。重新构建即可获得DLL的副本,您可以将其与您自己的可执行文件一起部署。
对于VS2010及以上版本,您真的希望优先考虑“嵌入互操作类型”功能。它仅嵌入您实际使用的接口声明在您自己的程序集中,有助于使您的BHO可分发大小更小。而避免了部署该Interop程序集的需要。强烈建议使用。

好的,我将使用Vstudio2010进行检查,其他选项也应该效果很好,我可以用BHO DLL来打包它。Hans,谢谢您的回复! - Jackie

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