Pregunta

C # 2005

Estoy utilizando una clase de instalación, ya que necesito una acción personalizada que se va a leer en un archivo XML de configuración.

Así que cuando el usuario hace doble clic la configuración, habrá un archivo Config.xml en la misma carpeta. Me gustaría leer en este archivo config.xml en el evento de instalación. La carpeta contendrá setup.exe y config.xml

Sin embargo, no puede encontrar el archivo config.xml, ya que lo está buscando en C: \ windows \ system32. Yo descubrí esto mediante el uso de applicationstartup.path. Sin embargo, la carpeta de instalación que contiene la configuración y config.xml se encuentra en el escritorio.

pensé que lo buscará en la ubicación actual. Que sería la carpeta de instalación.

La dificultad es que mi carpeta de instalación se puede descargar desde Internet y cualquier usuario puede descargarlo y descomprimirlo en cualquier lugar de su ordenador.

Aquí está mi fragmento de código para el evento en la instalación.

Muchas gracias por cualquier consejo

protected override void OnAfterInstall(System.Collections.IDictionary savedState)
    {
        DataTable dt = new DataTable();
        MessageBox.Show(Application.StartupPath.ToString());
        dt.ReadXml("config.xml");

        MessageBox.Show(base.Context.Parameters["CAT_TargetDir"].ToString());
    } 
¿Fue útil?

Solución 3

Me las arreglé para resolver esto.

La respuesta fue sólo para escribir un archivo bat simple que hará todo el trabajo para mí. A continuación, el archivo del palo llamará a la instalación e instalar la aplicación.

Gracias,

Otros consejos

Suponiendo que usted está hablando de un MSI, no es que el OriginalDatabase propiedad?

Supongamos que usted no está mistyping CAT_TargetDir en lugar de TARGETDIR que puede hacer la siguiente solución alternativa: establecer un CustomActionData y pasar TARGETDIR como el argumento de nuestra propia acción. No es la solución más elegante pero debería funcionar bastante fácil.

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