2010-11-29 19 views
5

Estoy trabajando en una aplicación que guarda un archivo en Path.GetDirectoryName(FilePath) donde FilePath = Application.ExecutablePath contiene información sobre licencias. Si ejecuto el programa desde VS, funciona bien, pero si hago un instalador e instalo y luego lo ejecuto, el programa piensa que el archivo ya existe. Cambié mi programa para mostrar en un cuadro de mensaje mi FilePath y si File.Exists(FilePath) devuelve true o false. Así que miré en esa ruta, habilité mostrando los archivos ocultos y del sistema, F5'd varias veces y nada. El archivo no existe, pero File.Exists(FilePath) devuelve verdadero. ¿Alguna idea de por qué está pasando esto y cómo puedo solucionarlo?File.Exists que devuelve true para un archivo que no existe

Estoy usando Windows Vista, Visual Studio 2010, C# y creé mi instalador con el Proyecto de configuración de VS.

Editar: Mi ruta es: C: \ Archivos de programa (x86) \ Helio \ License.xml.

Esto es parte de mi código:

 MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml 
     System.Diagnostics.Process.Start(LicenseFileName);  // Nothing happens 
     MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true 

olvidaba decir que ya tenía la aplicación instalada antes de que el archivo utilizado para existir. Lo desinstalé usando el Panel de control.

+0

¿Es una ruta absoluta o una ruta relativa? Mostrarnos el camino real también puede ser útil. – bblack

+2

Intenta abrir el archivo mediante Ejecutar. Podría estar súper escondido. Además, recomendaría no usar Windows Vista, para nada. –

+2

¿Estás diciendo literalmente 'FilePath = Application.ExecutablePath; File.Exists (FilePath);'? Una muestra de código más completa sería útil aquí. – Sorpigal

Respuesta

18

Si está instalando en una carpeta del sistema, es posible que la virtualización de archivos de Windows se active y cree una copia por usuario de los archivos. Por lo tanto, sus archivos pueden ubicarse en algún lugar de% userprofile% \ AppData \ Local \ VirtualStore carpeta

+0

Sí. Ahí es donde está. – Juan

+0

Sí, perdí un día entero el otro día antes de rastrear ese, creo que debería haberlo preguntado también SO :) – skajfes

Cuestiones relacionadas