3.939 messaggi dal 28 gennaio 2003
Dim CurrentDirectory1 As String = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.Location())

Dim CurrentDirectory2 As String = My.Application.Info.DirectoryPath

Dim CurrentDirectory3 As String = Path.GetDirectoryName(Application.ExecutablePath)

Dim CurrentDirectory4 As String = System.AppDomain.CurrentDomain.BaseDirectory()



Dovendo trovare il percorso dove è installato l'applicativo exe, queste procedure sono equivalenti o esistono differenze?

ps. apparentemente forniscono la stessa informazione.

ciao
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Pietro,
in certi casi potresti avere risultati diversi.

Guarda per esempio l'implementazione di Application.ExecutablePath: internamente prende in considerazione la proprietà CodeBase dell'assembly, che potrebbe darti un valore diverso rispetto alla proprietà Location che hai citato nel primo esempio:
http://blogs.msdn.com/b/suzcook/archive/2003/06/26/assembly-codebase-vs-assembly-location.aspx

La BaseDirectory invece potrebbe non essere la cartella dell'eseguibile. Prova per esempio a lanciare il tuo programma da linea di comando, mentre ti trovi in un'altra cartella. Hai un risultato diverso? Idem se provi a lanciare l'eseguibile da un file .bat che si trova altrove.

My.Application.Info.DirectoryPath invece, da quanto leggo qui, offre una maniera un po' più succinta per accedere alla proprietà Location dell'assembly. Penso che fra le quattro sia quella da preferire.

ciao,
Moreno

Enjoy learning and just keep making
3.939 messaggi dal 28 gennaio 2003
Interessante.
Ti ringrazio ancora.

Ciao.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.