Registrieren Sie verwaltete Assemblys mit COM, ohne den GAC zu verwenden
-
18-09-2019 - |
Frage
Ich frage mich, ob es möglich Baugruppen mit COM zu registrieren, ohne es mit dem GAC registrieren zu müssen. Wir müssen einige .net-Bibliotheken bereitstellen, die zu den klassischen asp ausgesetzt sind, mit einem CCW. Aber Implementierungen ist ein Alptraum.
Lösung
Yeap, Verwendung regasm.exe
mit /codebase
Schlüssel dafür. Wenn Sie regasm.exe
ohne /codebase
verwenden sie schreibt nur den Dateinamen des assmebly an der Registrierung und damit die .NET-Laufzeit nicht finden, wenn die Assembly im GAC ist. Mit /codebase
wird es den vollständigen Pfad schreiben und .NET gerne die Anordnung zu finden, wenn die Verbraucher CoCreateInstance()
nennen.
Andere Tipps
Ja, Sie können Regasm auf einer Baugruppe verwenden, ohne sie im GAC zu sein. Zum Beispiel habe ich ASP und ASP.NET-Websites, gemischt mit .NET-Assemblies im Ordner ist. Einige ausgesetzt sind COM und sind in situ aus dem Ordner ist registriert.
Natürlich sind diese Baugruppen einzigartig für die Anwendung und nicht von anderen Anwendungen gemeinsam genutzt. Um nicht zu sagen, dass entweder nicht möglich ist, würden Sie wahrscheinlich einen neutralen Ort wählen zu kopieren solche DLLs.