vb.net - pero - ruta raiz c#
¿Directorio ejecutable desde donde se ejecuta la aplicación? (6)
Necesito obtener la ruta (no el ejecutable) desde donde se ejecuta mi aplicación:
System.AppDomain.CurrentDomain.BaseDirectory()
Cuando ejecuto la declaración anterior con & "/images/image.jpg" en mi máquina local, funciona bien, pero cuando instalo la aplicación en otra máquina, dice que no puede encontrar el archivo y que hay mucha información de ruta adicional.
Solo necesito el directorio donde se ejecuta la aplicación. Estoy codificando en VB.NET con Visual Studio 2008.
¡Gracias!
Esta es la primera publicación en Google, así que pensé en publicar diferentes formas que están disponibles y cómo se comparan. Desafortunadamente, no puedo averiguar cómo crear una tabla aquí, así que es una imagen. El código para cada uno está debajo de la imagen con nombres completos.
My.Application.Info.DirectoryPath
Environment.CurrentDirectory
System.Windows.Forms.Application.StartupPath
AppDomain.CurrentDomain.BaseDirectory
System.Reflection.Assembly.GetExecutingAssembly.Location
System.Reflection.Assembly.GetExecutingAssembly.CodeBase
New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase)
Path.GetDirectoryName(Uri.UnescapeDataString((New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase).Path)))
Uri.UnescapeDataString((New System.UriBuilder(System.Reflection.Assembly.GetExecutingAssembly.CodeBase).Path))
Necesitaba saber esto y vine aquí, antes de recordar la clase de Medio Ambiente.
En caso de que alguien más tuviera este problema, solo use este: Environment.CurrentDirectory
.
Ejemplo:
Dim dataDirectory As String = String.Format("{0}/Data/", Environment.CurrentDirectory)
Cuando se ejecuta desde Visual Studio en el modo de depuración yeilds:
C:/Development/solution folder/application folder/bin/debug
Este es el comportamiento exacto que necesitaba, y es lo suficientemente simple y directo.
Podría usar la propiedad estática StartupPath de la clase de aplicación.
Puedes escribir lo siguiente:
Path.Combine(Path.GetParentDirectory(GetType(MyClass).Assembly.Location), "Images/image.jpg")
Dim P As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
P = New Uri(P).LocalPath
Dim strPath As String = System.IO.Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
Tomado de CÓMO: Determinar la ruta de la aplicación en ejecución (MSDN)