2013-09-27 51 views
6

我做了一個C#BHO,它在內部使用Microsoft.mshtml.dll。現在要打包這個BHO,我還需要分發Microsoft.mshtml.dll。將這個dll添加到我的dll中可以嗎?任何法律問題?由於Microsoft.mshtml.dll存在於visual studio(C:\ Windows \ assembly \ GAC \ Microsoft.mshtml \ 7.0.3300.0__b03f5f7f11d50a3a \ Microsoft.mshtml.dll)中,所以此BHO可以在開發環境中正常工作。在每臺機器上的情況。請建議。Microsoft.mshtml.dll重新分配問題

+4

我投票結束這個問題作爲題外話題,因爲它涉及許可或法律問題,而不是編程或軟件開發。 [見這裏](http://meta.stackoverflow.com/questions/274963/questions-about-licensing/274964#274964)和[here](http://meta.stackexchange.com/questions/139804/can-許可問題永遠在主題上)以獲取詳細信息,以及[幫助]瞭解更多信息。 – JasonMArcher

回答

6

它是一個互操作程序集,它不包含任何代碼。只是聲明,從COM類型庫自動生成。因此重新分配是很好的。它完全安裝在GAC中的唯一原因是因爲它是一個主要互操作程序集PIA。當你編寫一個暴露自己的公共方法中的任何接口的類庫時,你只需要一個PIA。這種庫的客戶端也需要參考互操作程序集才能使用您的方法,並且它必須與您使用的方法完全相同。這在一般情況下很少見,特別是在BHO中。

如果您在VS2010之前使用Visual Studio版本,那麼只需將「複製本地」屬性設置爲True即可獲取程序集引用。重建,你會得到一個你可以隨自己的可執行文件一起部署的DLL副本。

對於VS2010及更高版本,您確實希望使用Embed Interop Type功能。它將接口聲明嵌入到您自己的程序集中,只有您實際使用的接口聲明。這有助於大大減少BHO的可分配大小。並避免需要部署該互操作程序集。強力推薦。

+0

好吧,我會檢查與Vstudio2010其他選項也應該工作好我可以用bho dll包裝它。漢斯,感謝您的迴應! – Jackie