Sto provando a creare un semplice programma c#
utilizzando Growl C# API
.csc.exe riferimento file .dll esterno
ho provato a compilare il mio programma in due modi diversi:
1) ho mantenuto il mio file .dll
nella stessa directory del mio file .cs
. Ho eseguito
csc /r:Growl.Connector.dll,Growl.CoreLibrary.dll /out:test.exe *.cs
Ha compilato bene e anche eseguito bene.
2) Ora ho creato una directory dentro la mia directory di lavoro corrente denominata growl
e mantenuto tutti i miei riferimenti .dll
lì.
Ora, quando provo a compilare con il comando di seguito
csc /r:"D:\Modified\Growl_NET_Connector_SDK\libraries\growl\Growl.Connector.dll","D:
\Modified\Growl_NET_Connector_SDK\libraries\growl\Growl.CoreLibrary.dll" /out:test.exe *.cs
E compilato bene, ma quando ho provato a farlo funzionare è verificata l'eccezione di seguito indicato.
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Growl.Connector, Version=2.0.0.0, Culture=n
eutral, PublicKeyToken=980c2339411be384' or one of its dependencies. The system cannot find the file specified.
at GrowlNotification.Program.Main(String[] args)
Quindi, la mia domanda è: qual è il modo corretto per fare riferimento .dll
file in csc
quando i file sono in una cartella esterna.
Ecco lo directory structure per il secondo caso.
Quindi non è possibile mantenere il file '.dll' in una cartella esterna ed eseguire il mio' .exe' semplicemente facendo doppio clic su di esso. Come capisco dalla tua risposta che il file '.dll' dovrebbe essere presente nella stessa cartella di .exe in fase di esecuzione. – RanRag
@Noob: Credo che potrebbe trovarsi in una * sottodirectory * se si aggiunge un file app.config per specificare il rilevamento del percorso del cestino privato, ma si tratta solo di aggiungere ancora più complessità. È tutto * molto * più semplice se tutto è nella stessa directory. –
Grazie per le informazioni. – RanRag