Pregunta

En VS2008 he escrito un servicio c #, un instalador y he creado un paquete de instalación para instalarlo. El servicio necesita cargar un archivo xml para funcionar. ¿Dónde está el mejor lugar para colocar este archivo en las distintas carpetas del sistema de archivos que ofrece el proyecto de configuración de VS, y cómo me refiero a estas rutas desde mi código?

Gracias

[Debo señalar que el servicio se ejecuta como LocalService, lo que significa que la carpeta de datos de la aplicación ofrecida por la carpeta de datos de la aplicación del usuario " " El elemento en el proyecto de configuración de VS no es accesible, incluso cuando " Instalar para todos los usuarios " se utiliza durante la instalación. Podría hackear esto fácilmente, pero me gustaría entender las mejores prácticas]

¿Fue útil?

Solución

No estoy seguro de qué lugar es mejor para almacenar el archivo XML. No creo que importe mucho. Pero si necesita obtener una ruta de carpeta especial en el sistema, puede usar la clase de entorno para hacerlo. La siguiente línea de código obtiene la ruta de los archivos de programa:

string path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);

Otros consejos

Para leer la ruta de instalación utilizada por el instalador creado a partir del proyecto de instalación:

1) Abrir " Acciones personalizadas " editor en tu proyecto de configuración

2) Agregue una acción personalizada desde su ensamblaje donde se encuentra su clase de instalador (si aún no lo ha hecho)

3) Seleccione esta acción personalizada y agregue / myKey = " [TARGETDIR] \ " a CustomActionData en la cuadrícula de propiedades

4) En su clase de instalador, puede acceder a su valor de la siguiente manera: Context.Parameters [" myKey "] en la anulación de su método dependiendo de su elección en el paso 2

Esta es una pregunta muy antigua, pero como no estoy de acuerdo con la respuesta aceptada, al menos si el programa actualizará el archivo XML, lo publicaré de todos modos.

Lo que hago al instalar un programa de tipo servidor (servicio de Windows u otro programa no específico para el usuario) es instalar un archivo de configuración XML predeterminado o de plantilla en Archivos de programa junto con el programa. Pero nunca intento escribir en ese archivo, esto normalmente no está permitido.

En cambio, durante la inicialización del programa, pruebo si el archivo se ha copiado previamente en una subcarpeta que creo en C: \ ProgramData, es decir, " C: \ ProgramData \ myCompanyName \ myProgramName \ mySettingsFile.xml " ;. (Encuentre C: \ ProgramData usando Environment.SpecialFolder.CommonApplicationData - vea aquí: http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx ). Si el archivo de configuración XML ya existe, lo abro y lo uso, se puede escribir. Si no existe, entonces creo las subcarpetas si es necesario y copio el archivo de configuración XML de la plantilla desde los Archivos de programa. Esta debe ser una operación que se realiza una sola vez y que solo se realiza la primera vez que se ejecuta el programa después de la instalación.

Consulte aquí para obtener más información: Como desarrollador, ¿cómo debo usar las carpetas especiales en Windows Vista (y Windows 7)?

Siempre se puede utilizar el registro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top