2012-05-31 9 views
5

Estoy tratando de usar la última configuración inno para implementar mi programa. Parece que no puedo (y no lo recomiendo) instalar mi programa en la carpeta Archivos de programa debido a las restricciones que va a dar (por ejemplo, mi programa siempre tendrá problemas al usar la parte del programa que modifica la base de datos, a menos que se inicie como un administrador). Leí en algún lado que deberíamos pedirle a inno setup que instalara nuestro programa al CSIDL_APPDATA, pero no estoy muy versado con la configuración inno. ¿Cómo hago esto usando la configuración de Inno?Instalar una aplicación y base de datos para todos los usuarios

+3

Probablemente malinterpretaste lo que lees y, de hecho, podría estar sugiriendo implementar tus archivos de datos en CSIDL_APPDATA y tu programa para programar archivos. –

Respuesta

9

La aplicación en sí misma debe instalarse en una carpeta debajo de {pf} (Archivos de programa). Sin embargo, los datos de la aplicación (o una base de datos) deben ir a una carpeta debajo de {commonappdata}. Si la base de datos va a ser modificada por usuarios normales, entonces deberá establecer los permisos en esta carpeta (utilizando el parámetro Permissions). Si es específico del usuario, puede copiar el valor predeterminado a la carpeta de aplicación de datos del usuario y modificar eso.

[Dirs] 
Name: {commonappdata}\i-Catcher Console; permissions: everyone-modify admins-full; 

La complicación se produce cuando se utiliza una aplicación de Access que tiene la interfaz de usuario integrada en la base de datos. En este caso, ambas ubicaciones son tan malas como las demás ({commonappdata}/blah es marginalmente mejor), pero deberá establecer los permisos según corresponda.

+0

pero si pongo la base de datos y la aplicación en otra carpeta, se creará problemas ya que en mi código C# sólo tiene que utilizar cuerdas connString = "Data Source = recipes.db"; lo que significa que las recetas.db deben residir en la misma carpeta que el ejecutable principal, ¿no? – imin

+0

Eso fallará en varias situaciones de todos modos. Debe solucionarlo para determinar la carpeta de datos de la aplicación y usar una ruta totalmente calificada. – Deanna

+1

emmm ... ¿cómo hago eso en C#? Me refiero a algo como cuerdas connString = "Data Source =" + + installedfolder "recipes.db" – imin

Cuestiones relacionadas