Registrati assembly gestiti con COM senza usare il GAC
-
18-09-2019 - |
Domanda
Mi chiedo se è possibile registrare assiemi con COM senza doversi registrare con GAC. Abbiamo bisogno di implementare alcune librerie .NET che sono esposti a ASP classico con un CCW. Ma implementazioni sono un incubo.
Soluzione
Yeap, uso regasm.exe
con chiave /codebase
per questo. Quando si utilizza regasm.exe
senza /codebase
si scrive solo il nome del file Assmebly al Registro di sistema e quindi il runtime .NET non riesce a trovare a meno che l'assemblaggio è nel GAC. Con /codebase
sarà scrivere il percorso completo e .NET sarà felice di trovare il gruppo in cui il consumatore chiama CoCreateInstance()
.
Altri suggerimenti
Sì, è possibile utilizzare Regasm su un assieme senza che sia nel GAC. Per esempio io ho preparato i siti ASP e ASP.NET con assembly .NET nella cartella bin. Alcuni sono esposti a COM e sono registrati in situ dalla cartella bin.
Naturalmente queste assemblee sono unici per l'applicazione e non sono condivisi da altre applicazioni. Per non dire che non è possibile né, si sarebbe probabilmente scegliere una posizione neutra per copiare tali dll a.