Creare un riferimento ad un file eseguibile in Visual Studio 2002/2003
Solitamente, quando si sviluppano delle soluzioni basate su componenti riutilizzabili, capita che tali componenti siano contenuti in assembly di tipo library, ovvero Dinamic Link Library (DLL). Altre volte, può succedere che le interfacce e le classi alle quali ci si vuole riferire siano contenute in un assembly di tipo eseguibile (EXE). In questo caso, VS 2005 permette comunque di creare un riferimento al file eseguibile, tramite l'utilizzo del browser delle referenze, come se fosse una qualsiasi dll. Ma se ci spostiamo un pò all'indietro nel tempo ed utilizziamo VS2002/2003, non ci è permesso aggiungere un riferimento di tipo file eseguibile al nostro progetto. Il browser, infatti , ci comunica che è possibile aggiungere riferimenti solo a file di tipo dll.
Questo può rappresentare un problema nel caso in cui noi dovessimo per forza di cose far riferimento al file eseguibile, perchè quest'ultimo non è stato sviluppato da noi e quindi non possiamo effettuare un refactoring e "portar fuori" dall'assembly le classi alle quali vogliamo riferirci. Il codice non può utilizzare l'intellisense ed inoltre non possiamo in alcun modo compilare il codice all'inteno di Visual Studio, bensì solamente utilizzando i compilatori a riga di comando.
La soluzione è quella di agire a livello di file .vbproj o .csproj, andando a modificare manualmente l'elemento <references>, aggiungendo la reference al file eseguibile come possiamo vedere nel codice seguente:
<References>
<Reference Name = "System" AssemblyName = "System"/>
<Reference Name = "System.Data" AssemblyName = "System.Data"/>
<!--...snip...-->
<Reference
Name = "System.Windows.Forms"
AssemblyName = "System.Windows.Forms"
HintPath = "..\..\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"/>
<Reference
Name = "Reflector"
AssemblyName = "Reflector"
HintPath = "C:\Programmi\Reflector\Reflector.exe"/>
</References>
Il progetto, una volta salvato il file, sarà compilabile ed utilizzabile all'interno dell'IDE di Visual Studio 2002/2003, con l'aiuto dell'intellisense e del debugger integrato. Faccio comunque presente che il problema non sussiste più in VS2005, in quanto il browser delle referenze ammette anche l'aggiunte di un file eseguibile.
indietro