Foros del Web » Programación para mayores de 30 ;) » .NET »

Windows Vista, Carpeta Virtual Store, y otras cosas raras...

Estas en el tema de Windows Vista, Carpeta Virtual Store, y otras cosas raras... en el foro de .NET en Foros del Web. Buenas. Me encontré con un comportamiento que quisiera compartir, para ver qué opiniones me dan al respecto. Desde mi aplicación, por código, cargo el contenido ...
  #1 (permalink)  
Antiguo 16/09/2009, 04:47
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Windows Vista, Carpeta Virtual Store, y otras cosas raras...

Buenas.
Me encontré con un comportamiento que quisiera compartir, para ver qué opiniones me dan al respecto.
Desde mi aplicación, por código, cargo el contenido de un fichero de texto, que está ubicado en el AppDirectory, en un string, y muestro el string por pantalla.
Luego, me voy a abrir el fichero físicamente, y para mi sorpresa, compruebo que existen diferencias entre el contenido que estoy viendo, y el que me arroja mi aplicación.
Después de horas realizando hartas pruebas, la conclusión es que el sistema, por algún motivo relacionado con permisos y que desconozco, me está enviando a un fichero ubicado en otra ruta, distinta de la que le estoy diciendo yo.

Ejemplo:
Estoy cargando el contenido de un fichero ubicado en
C:\Program Files\MyCompany\MyApp\MyFile.txt

Y el sistema, realmente está cargando el siguiente
C:\Users\MyUserName\AppData\Local\VirtualStore\Pro gram Files\MyCompany\MyApp\MyFile.txt

Aun estando seguro que desde mi aplicación intento acceder a la ruta del primer caso y no a otra, el propio Windows Vista, en vez de decir que no existe, que no tiene permisos, o cualquier otra cosa, de forma transparente está accediendo a la otra ruta, que parece ser una copia anterior de la carpeta Program Files, o algo parecido...

¿Cuál es la explicación a todo esto? ¿Cómo podemos controlarlo?

Gracias por vuestras opiniones.
Saludos.
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 16/09/2009, 07:56
 
Fecha de Ingreso: septiembre-2009
Ubicación: Galicia
Mensajes: 111
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Windows Vista, Carpeta Virtual Store, y otras cosas raras...

¿y si le das la ruta a mano, en vez de con el AppDirectory?

algo asi:

Dim archivo As New StreamReader("C:\Program Files\MyCompany\MyApp\MyFile.txt")

¿te hace lo mismo?

Saludos!
  #3 (permalink)  
Antiguo 16/09/2009, 08:29
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Respuesta: Windows Vista, Carpeta Virtual Store, y otras cosas raras...

Hola jarogo.
Gracias por tu respuesta.
La verdad es que imagino que en el caso que presentas no hay equivocación.
Pero piensa lo siguiente.
El usuario está instalando la aplicación es su máquina, y en el momento de elegir la carpeta de instalación, decide ubicar la aplicación en otra carpeta distinta de "Archivos de Programa" (está plenamente en su derecho).
En tal caso, a mi me interesa que cuando le pida por código a la aplicación el "directorio de la aplicacion" me devuelva el directorio real donde ha sido instalada, y una vez posicionado en esa carpeta, si que conozco la estructura dentro de ella.
Pero no te aconsejo que tusd aplicaciones accedan directamente así, a la carpeta de aplicación, por el motivo que te expliqué.
Saludos.
__________________
..:: moNTeZIon ::..
  #4 (permalink)  
Antiguo 16/09/2009, 08:33
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Windows Vista, Carpeta Virtual Store, y otras cosas raras...

el problema de usar una ruta absoluta jarogo es q si el usuario instala en otro folder ya se fastidio todo.

probaste con AppDomain.CurrentDomain.BaseDirectory + nombredelarchivo

otra solucion practica seria usar isolated storage si es qno quieres preocuparte por la ruta si no por la seguridad.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 17/09/2009, 01:22
 
Fecha de Ingreso: septiembre-2009
Ubicación: Galicia
Mensajes: 111
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: Windows Vista, Carpeta Virtual Store, y otras cosas raras...

Hola!

entiendo lo de que la ruta debe cogerla en función de donde esté el ejecutable, solo era para probar que no hacía nada "raro" el vista con las rutas.

Entonces el problema es que no "adivina" donde está el exe.

Aparte de la forma que te dice peterpay, prueba con "Directory.GetCurrentDirectory.ToString", a ver si alguna de las dos acierta con la ruta.

Saludos!
  #6 (permalink)  
Antiguo 17/09/2009, 04:59
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 4 meses
Puntos: 9
Respuesta: Windows Vista, Carpeta Virtual Store, y otras cosas raras...

Gracias amigos.
Estoy viendo como está montado este nuevo esquema con Vista, 2008, y W7.
La cosa va por los permisos. Parece ser que cuando se instala la aplicación, las particularidades de usuario (por llamnarlo de alguna forma) se guardan en esa estructura dentro de "Virtual Store" de forma que los usuarios no tengan por qué acceder a la carpeta "Program Files".
Gana en seguridad pero hay que ver cómo manejarlo.
Peterpay me pasó este enlace que comparto aquí, para requerir elevación de Administrador para poder instalar la aplicación:
http://community.bartdesmet.net/blog...ng-mt.exe.aspx
En parte, soluciona el problema, per esto ya será según el tipo de instalación que vayamos a realizar.
Gracias por las opiniones.
Saludos.
__________________
..:: moNTeZIon ::..
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:00.