2013-09-27 14 views
6

Ich habe ein C# BHO gemacht, die intern Microsoft.mshltml.dll verwendet. Jetzt, um dieses BHO zu verpacken, muss ich auch Microsoft.mshtml.dll verteilen. Ist es in Ordnung, diese DLL mit meinen DLLs hinzuzufügen? Irgendein rechtliches Problem? Dieses BHO funktioniert gut in der Entwicklungsumgebung, da die Datei Microsoft.mshtml.dll in Visual Studio (C: \ Windows \ Assembly \ GAC \ Microsoft.mshtml \ 7.0.3300.0__b03f5f7f11d50a3a \ Microsoft.mshtml.dll) vorhanden ist Fall auf jeder Maschine. Bitte vorschlagen.Microsoft.mshtml.dll Redistribution Probleme

+4

Ich stimme ab, diese Frage als off-topic zu schließen, weil es um Lizenzierung oder rechtliche Probleme geht, nicht um Programmierung oder Softwareentwicklung. [Siehe hier] (http://meta.stackoverflow.com/questions/274963/questions-about-licensing/274964#274964) und [hier] (http://meta.stackexchange.com/questions/139804/cani- Lizenzierungsfragen-immer-am-Thema sein für Details und die [Hilfe] für mehr. – JasonMArcher

Antwort

6

Es ist eine Interop-Assembly, es enthält keinen Code. Nur Deklarationen, die automatisch aus der COM-Typbibliothek generiert werden. Umverteilen ist also in Ordnung. Der einzige Grund, warum es überhaupt im GAC installiert ist, ist, dass es sich um eine PIA, eine primäre Interop-Assembly, handelt. Sie benötigen nur eine PIA, wenn Sie eine Klassenbibliothek schreiben, die eine der Schnittstellen in Ihren eigenen öffentlichen Methoden verfügbar macht. Der Client einer solchen Bibliothek benötigt ebenfalls einen Verweis auf die Interop-Assembly, um Ihre Methoden verwenden zu können, und es muss dieselbe sein, die Sie verwenden. Dies ist im Allgemeinen selten, besonders in einem BHO.

Wenn Sie eine Visual Studio-Version vor VS2010 verwenden, legen Sie für die Assembly-Referenz einfach die Eigenschaft Copy Local auf True fest. Rebuild und Sie erhalten eine Kopie der DLL, die Sie zusammen mit Ihren eigenen ausführbaren Dateien bereitstellen können.

Für VS2010 und höher möchten Sie die Funktion "Interp-Typ einbetten" wirklich bevorzugen. Das bettet die Schnittstellendeklarationen in Ihre eigene Assembly ein, nur die, die Sie tatsächlich verwenden. Das hilft sehr, die verteilbare Größe Ihres BHO kleiner zu halten. Und vermeidet die Notwendigkeit, diese Interop-Assembly bereitzustellen. Wärmstens empfohlen.

+0

Ok, also werde ich mit Vstudio2010 überprüfen andere Option sollte auch gut funktionieren, ich kann es mit Bho dll verpacken. Hans, Danke für die Antwort! – Jackie