Antecedentes:Environment.CurrentDirectory está dando resultados inesperados cuando se ejecuta aplicación instalada
me construyeron un instalador para mi aplicación, y toda mi DLL y archivos de contenido están consiguiendo copia correctamente al directorio C:\Program Files\MyCompany\MyApp
. Cuando ejecuto mi aplicación desde Visual Studio, todo funciona bien. Sin embargo, cuando ejecuto la versión instalada de mi aplicación, obtengo un DirectoryNotFoundException
. El problema parece ser con Environment.CurrentDirectory
.
que estaba esperando para ser Environment.CurrentDirectory
...
"C:\\Program Files\\MyCompany\\MyApp"
... pero en realidad era ...
"C:\\Documents and Settings\\DanThMan"
lo que está pasando aquí? ¿Cómo puedo solucionar esto?
Gracias.
EDIT:
bien, hmm. Este problema solo ocurre si ejecuto el atajo del menú Inicio. Si ejecuto MyApp.exe directamente, todo está bien.
EDIT 2:
creo que he llegado a la parte inferior de esto ahora. En mi Instalador (que es un Proyecto de Configuración de Visual Studio), el acceso directo al Menú de Inicio tiene una propiedad llamada WorkingFolder
, que "Especifica la carpeta donde se instalará la aplicación de destino para el acceso directo". Accidentalmente configuré WorkingFolder
en "MyCompany". Debería ser "Carpeta de aplicación". Ahora que lo tengo configurado correctamente, Environment.CurrentDirectory
está funcionando nuevamente como se esperaba. Gracias por toda tu ayuda.
Datos 3:
Sin embargo, leer las advertencias A continuación, he decidido ir con los siguientes como un reemplazo para Environment.CurrentDirectory
:
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
Fui con la segunda solución porque la primera no funcionará con una aplicación WPF (a menos que incluya el ensamblado para Windows Forms). – devuxer