que windows-7 c#-2.0 virtualstore

windows 7 - que - Cómo evitar la redirección de archivos desde los datos del programa a VirtualStore / ProgramData



virtual store windows 10 (2)

Primero, pregúntese: ¿es necesario que esto se guarde globalmente para todos los usuarios?

Si no tiene que ser así, guarde el archivo en Application Data, puede obtener la ruta con Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) , siempre debe expandirse de forma confiable a C:/Users/Username/AppData/Roaming/ . Tenga en cuenta que esta ruta es única para cada usuario.

Si es necesario, no tiene suerte. No existe una manera confiable de almacenar datos de aplicaciones para todos los usuarios sin derechos de administrador (o UAC) en cualquier post-XP de Windows que no sea extremadamente hacky, como almacenar sus datos en el usuario público (lo cual puede o no ser posible, no puedo " Verifique en este momento).

Estoy usando C # con .net 2.0

Estoy guardando los datos de mi programa en un archivo en: C:/Program Data/MyProgramName/fileName.xml

Después de instalar y ejecutar mi aplicación una vez, la desinstalé (durante la desinstalación eliminé todos los archivos de "datos del programa") y luego reinstalé la aplicación y la ejecuté.

Lo extraño es que mi aplicación comenzó como si los archivos en los datos del programa existieran, es decir, tenía datos viejos en mi aplicación a pesar de que el archivo de datos fue eliminado.

Cuando se ejecuta:

File.Exists ("C: / Program Data / MyProgramName / fileName.xml")

Obtuve "verdad" aunque sabía con certeza que el archivo no existe.

La cosa se volvió más extraña cuando ejecuté la aplicación como administrador y luego el archivo no existía.

Después de una investigación, descubrí que al ejecutar mi aplicación sin privilegios de administrador en lugar de obtener:

"C: / Program Data / MyProgramName / fileName.xml" Obtengo "C: / Users / UserName / AppData / Local / VirtualStore / ProgramData / MyProgramName / fileName.xml"

y, de hecho, había un archivo que existía desde la instalación anterior (que obviamente no eliminé, porque no sabía que existía). así que solo guíame cómo podría detener esto cuando las aplicaciones se ejecuten sin derecho de administrador. No quiero crear ningún archivo automáticamente en la carpeta VirtualStore. por favor, discuta todas las formas posibles para detener esto. Gracias


Encontré una solución alternativa para este problema al transferir una aplicación win32 muy antigua a Windows 7 y 10. El programa escribió en una base de datos en C: / Archivos de programa ... pero el sistema operativo cambió automáticamente la ruta a la tienda virtual. Sin embargo, la base de datos fue requerida globalmente. Cambiando el modo de compatibilidad a Windows 95 o XP SP2 y siempre ejecutándose como administrador, se trabajó directamente en la base de datos en C: / Program Files / etc.

Hay implicaciones de seguridad para esto y la caja fue eliminada de todas las redes y adaptadores deshabilitados, etc.