problema de permiso de escritura del archivo en la carpeta “Archivos de progtwig”

Estoy usando la configuración inno para hacer un paquete de instalación para mi aplicación, y mi aplicación está escrita por C # + .Net 2.0 + VSTS 2008. Inno setup => http://www.jrsoftware.org/isinfo.php y instalo mi aplicación en Archivos de progtwig / carpeta Foo (Foo es el nombre de mi aplicación). Mi aplicación está orientada a Windows Vista.

El problema que encontré es que mi progtwig no puede escribir en la carpeta Program Files / Foo. Y necesito el permiso de escribir en esta carpeta para guardar algunos archivos de configuración. Lo extraño que noto es que la carpeta Program Files / Foo está marcada como de solo lectura y he comprobado que todas las carpetas en Archivos de progtwig están marcadas con solo lectura, como Office.

Mis preguntas son,

  1. ¿Por qué todas las carpetas están marcadas como de solo lectura en Archivos de progtwig? ¿Significa que no debemos escribir en carpetas de aplicaciones individuales en Archivos de progtwig? De lo contrario, ¿dónde deberíamos escribir la información en el disco como la última información de configuración seleccionada por el usuario de una aplicación individual?
  2. Si pudiéramos escribir en carpetas de aplicaciones individuales en Archivos de progtwig, ¿cuál es la solución? No quiero que mi aplicación se ejecute como administrador para resolver este problema, y ​​si hay una solución para escribir en esta carpeta, quiero solicitar un permiso mínimo si es posible.

Debe escribir los datos de configuración específicos del usuario en la carpeta Datos de la aplicación para el usuario actual, utilizando las carpetas especiales enum y Enivronment.GetFolderPath .

La mejor práctica es no almacenar datos de configuración en la carpeta Archivos de progtwig. En su lugar, almacene los datos de su aplicación en% AppData% \ YourApplicationName. Dependiendo de si desea almacenar sus datos de configuración por usuario o en una carpeta común compartida, use una de las siguientes enumeraciones para obtener la ruta de la carpeta:

string userAppData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string commonAppData = Envrionment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 

De manera predeterminada, los usuarios de Vista no ejecutan progtwigs como administradores y, por lo tanto, esos progtwigs solo tienen acceso de lectura a las carpetas en “Archivos de progtwig”. Los usuarios pueden cambiar este comportamiento al deshabilitar el UAC y pedirle a los usuarios que lo hagan, pero en una configuración de oficina los usuarios pueden no tener esa opción. Es por eso que usa AppData en su lugar: las aplicaciones siempre pueden leer y escribir datos en la carpeta AppData.

Puede encontrar información sobre UAC en el sitio de Microsoft. Aunque esta página es bastante larga, es un punto de partida para comprender el UAC: http://msdn.microsoft.com/en-us/library/bb530410.aspx

Una solución común sería instalar archivos de configuración en la carpeta Application Data, es decir, de la siguiente manera:

 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)