Libreria DLL in VB.Net

lunedì 28 giugno 2010 - 12.46

skizz87 Profilo | Newbie

Ciao a tutti,
avendo la necessità di interagire in maniera particolare con un server AS400 da ASP VBScript ho creato una libreria DLL con VB.Net
La mia idea era di registrarla nel server con il classico regsvr32 come componente COM e poi crearmi un oggetto nella pagina ASP con un Server.CreateObject.
Il problema risiede nella registrazione della libreria sul server, quando vado a registrarla con regsvr32 mi dice che che è stata caricata ma che il punto di ingresso DllRegisterServer non è stato trovato.
Di fatto la libreria tramite IIS non risulta accessibile.
Sto usando la versione Express di VB.Net 2008 non vorrei che il problema fosse dovuto da qualche limitazione di questa particolare versione.

Avete qualche suggerimento in merito? non ho trovato molte soluzioni nel web..
Grazie in anticipo

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>avendo la necessità di interagire in maniera particolare con
>un server AS400 da ASP VBScript ho creato una libreria DLL con
>VB.Net
>La mia idea era di registrarla nel server con il classico regsvr32
>come componente COM e poi crearmi un oggetto nella pagina ASP
>con un Server.CreateObject.
>Avete qualche suggerimento in merito? non ho trovato molte soluzioni nel web..
in effetti è una cosa un po' delicata.
Un mio amico dev mi consiglia questi link:
http://www.codeproject.com/KB/COM/nettocom.aspx
http://blog.stevedoria.net/20051008/creating-com-components-using-visual-csharp-dot-net

il secondo è c# ma non credo che cambi moltissimo.

>Grazie in anticipo
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

skizz87 Profilo | Newbie

Grazie mille
Credo che proverò con il secondo link intanto
Il problema che avevo già riscontrato con altre prove è che essendo la versione Express di VB non ho il prompt di Visual Studio e quindi comandi come regasm, sn, ecc. non li ho.
Per ovviare al problema ho provato ad installare l'SDK del .Net Framework ma senza risultato...
quindi ora il problema è come reperire regasm

skizz87 Profilo | Newbie

Sono un tonno, ho fatto un F3 su c: (non ci avevo pensato) e ho trovato regasm.exe e compagnia bella in: C:\Windows\Microsoft.NET\Framework\v2.0.50727

Adesso vedo di incorporarlo in ASP, poi vi faccio sapere così magari può essere utili per qualcun altro.

skizz87 Profilo | Newbie

Ci sono riuscito, riepilogo i passi che ho effettuato per chi come me si troverà in difficoltà.
Prima di compilare la DLL accertarsi che nelle proprietà della classe il campo "Classe COM" sia a True e che i metodi che vorremo utilizzare abbiano le proprietà "DispId" e "Visibile a COM" a True.
Poi prima di compilare andiamo nelle proprietà del progetto, Applicazione, Informazioni Assembly, qui attiviamo il flag "Rendi assembly visibile a COM".
Compiliamo il tutto.
Ora data che la versione di VB che ho usato è la express per avere gli strumenti del prompt di Visual Studio ho scaricato dal sito Microsoft (da qui: http://www.microsoft.com/downloads/thankyou.aspx?familyId=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displayLang=it) l'SDK del .Net Framework, al termine dell'installazione di quest'ultimo ho aggiunto ai path di sistema le directory:
1) C:\Programmi\Microsoft.NET\SDK\v2.0\Bin
2) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Attenzione che queste ultime possono variare in base alle versioni utilizzate.
A questo punto apriamo un terminale nella cartella della DLL che abbiamo creato e seguiamo questa procedura:
creiamo la chiave per registrare l'assembly così:
sn -k key.snk
registriamo l'assembly:
regasm miaDLL.dll /tlb:miaDLL.tlb
ed ora registriamola come componente COM:
gacutil /i miaDLL.dll

Un grazie ad alx_81 che mi ha consigliato dei link fondamentali.

alx_81 Profilo | Guru

>Un grazie ad alx_81 che mi ha consigliato dei link fondamentali.
ok, ringrazio chi me li ha passati allora

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5