Al obtener la ubicación de setup.exe en acción personalizada
-
11-09-2019 - |
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());
}
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.
También puede probar esto: requiero una acción MSI personalizado que copia un archivo desde el directorio de origen MSI