windows installer - squirrel - Directorio virtual en el proyecto de instalación web
installer electron js (7)
Tengo un proyecto de configuración web que, de forma predeterminada, muestra el directorio virtual en la pantalla del instalador de cuadros de texto. Deseo que el nombre del directorio virtual no pueda ser editado por el usuario y siempre tenga como predeterminado el que tengo configurado en mi msi. ¿Cómo se puede lograr esto?
Cambia a Wix y usa sus Extensiones Web
Org no permite código abierto, o código abierto GPL.
Soluciones: * edite la acción personalizada (haga clic con el botón derecho> ver> acción personalizada) para corregir el directorio virtual y la ruta Cambie los datos personalizados:
/targetdir="[TARGETDIR]/" /connectionstring="[CONNECTIONSTRING]" /targetvdir="[TARGETVDIR]" /targetsite="[TARGETSITE]"
A:
/targetdir="[TARGETDIR]/" /connectionstring="[CONNECTIONSTRING]" /targetvdir="FIXED_NAME" /targetsite="[TARGETSITE]"
Puede eliminar la dirección de instalación de la interfaz de usuario y configurar un componente que pase información a la instalación personalizada.
- Escribe una envoltura sobre msbuild con msbuildtasks
Para obtener el Directorio Virtual usando Context.Parameters
- Agregue una acción personalizada para instalar el nodo (use esta url si desea saber cómo agregar acciones personalizadas)
- Haga clic derecho en la acción personalizada y seleccione la ventana de propiedades.
- Para el conjunto de propiedades CustomActionsData / targetvdir = "[TARGETVDIR]".
- Ahora, en su clase de instalador, puede obtener el nombre del directorio virtual por Context.Parameters ["targetvdir"]. Espero que esto te haya ayudado :)
Seleccione su proyecto de configuración, Ver> Editores> Interfaz de usuario, seleccione los cuadros de diálogo Dirección de instalación y elimínelos.
EDITAR:
Como señala Shay, los usuarios pueden anular la ubicación de instalación predeterminada desde la línea de comandos. Para anular esto, debe establecer la propiedad TARGETDIR en su InstallExecuteSequence. Desafortunadamente, no puede cambiar esta secuencia desde Visual Studio, tiene que usar Orca:
- Construye tu proyecto de instalación.
- Abra el archivo MSI desde Orca.
- Cree una nueva acción personalizada de Tipo 51 (propiedad de conjunto) con Origen "TARGETDIR" (sin comillas), Destino de su carpeta de destino y un nombre único para Acción (la convención es usar un GUID con guión bajo inicial).
- Cree una nueva fila en InstallExecuteSequence con su nombre único para Action, "NOT Installed" para Condition, y un número de secuencia antes del uso de TARGETDIR (750 fue el primer uso en la muestra que hice, así que usé una secuencia de 555) .
Si no desea que el usuario cambie el directorio virtual, simplemente puede eliminar el cuadro de diálogo "Dirección de instalación" de la interfaz de usuario.
- Haga clic derecho en el proyecto de instalación y seleccione "Interfaz de usuario".
- Expanda el nodo "Inicio".
- Haga clic derecho en "Dirección de instalación".
- Seleccione "Eliminar"
Si desea diferentes parámetros para el sitio web, el directorio virtual, el grupo de aplicaciones que normalmente se selecciona mediante el cuadro de diálogo de la dirección de instalación, puede anularlo con una acción personalizada como lo han descrito otros.
Sin embargo, en mi experiencia, las acciones personalizadas no ayudan con la configuración de valores predeterminados que el usuario puede cambiar porque se ejecutan después de los cuadros de diálogo que solicitan la entrada del usuario.
La forma más fácil de establecer algunos valores predeterminados que el usuario puede anular si es necesario en un diálogo es hacer lo siguiente.
- Eliminar la página de bienvenida.
- Agregar un cuadro de diálogo de cuadros de texto (por ejemplo, "cuadros de texto (A)")
- Cambie las propiedades visibles de todos los cuadros de texto a falso para que no se muestren los cuadros de texto.
- Cambia las propiedades BannerBitmap y BodyText para que se vea como una página de bienvenida.
- Establezca las propiedades necesarias que desea anular en "Editar *** <n> Propiedad" y establezca el valor predeterminado en "Editar <n> *** Valor".
Las propiedades más útiles (IMHO) son.
TARGETDIR - Donde se copiarán los archivos.
TARGETVDIR: el directorio virtual que se creará en el sitio especificado.
TARGETAPPPOOL: el grupo de aplicaciones a usar (NOTA: debe existir, no se creará)
OBJETIVO: el sitio web donde se creará el directorio virtual (NOTA: Este es el valor de la metabase para el sitio web ... Por ejemplo: "/ LM / W3svc / 2". También tenga en cuenta que el sitio debe existir).
Hay una lista completa de propiedades para el instalador que se puede encontrar here .
Si realmente desea un mejor control sobre la configuración de IIS, sugeriría cambiar su proyecto a un proyecto estándar de Windows Installer y crear acciones de instalación personalizadas para que pueda crear AppPools mediante programación. Un buen lugar para comenzar a entender mediante la creación de estas cosas mediante programación es here .
La principal razón para hacerlo de esta manera es que las acciones personalizadas se ejecutan después de la solicitud, pero el grupo de aplicaciones y los sitios web deben crearse antes de que el instalador pueda solicitar.
Solución de baja tecnología: edite el archivo vdproj en notepad ++ para configurar el directorio virtual y elimine el cuadro de diálogo Dirección de instalación del Editor de interfaz de usuario.
Suena bien en teoría pero, por lo que sé, no funciona, al menos no para configurar AppPool. Tengo una acción personalizada para configurar el conjunto de aplicaciones (que por cierto funciona bien cuando el instalador está construido con VS2005) en mi proyecto de configuración web vs2008.
DirectoryEntry IISVdir = new DirectoryEntry(String.Format("IIS://{0}{1}/{2}", strServer, strRootSubPath, Vdir));
IISVdir.Properties["AppPoolId"].Value = appPool;
IISVdir.CommitChanges();
El instalador se ejecuta sin ningún cuadro de diálogo (se eliminó el nodo de UI de la dirección de instalación) pero el conjunto de AppPool en el directorio virtual termina siendo DefaultAppPool.
Otras acciones personalizadas en mi clase de ayuda se ejecutan y funcionan.
Así que debe haber otros encantamientos mágicos necesarios.
Gracias.