windows installer - tutorial - Establecer la clave de registro de InstallPath usando el proyecto de instalaciĆ³n de Visual Studio
microsoft visual studio 2017 installer projects tutorial (4)
- sigue estos pasos:
- Añadir un proyecto de biblioteca de clases en la solución de configuración.
- Agregue el archivo del instalador en su proyecto de biblioteca de clases.
- Agregue el proyecto de biblioteca de clases creado a su carpeta de aplicación de configuración
- Agregue el archivo del instalador del proyecto creado (en la ventana de acción personalizada de instalación) al elemento de subárbol "Instalar".
- haga clic en el proyecto agregado y presione F4 para abrir la ventana de Propiedades.
- en la ventana de propiedades, establezca "/ pDir =" [TARGETDIR] / "en CustomActionData.
en el archivo del instalador (en el proyecto de la biblioteca de clases) escriba el siguiente código para escribir la ruta de instalación en el registro.
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) MyBase.Install(stateSaver) Dim regsrv As New RegistrationServices regsrv.RegisterAssembly(MyBase.GetType().Assembly, AssemblyRegistrationFlags.SetCodeBase) ''--------- adding installation directory to stateSaver ---------- stateSaver.Add("myTargetDir", Context.Parameters("pDir").ToString) End Sub
Public Overrides Sub Commit(ByVal savedState As System.Collections.IDictionary) MyBase.Commit(savedState) ''''messagebox.show("salam") Dim InstallAddress As String = savedState("myTargetDir").ToString Dim regKey As RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("software/pourab/Sanjande", True) regKey.SetValue("InstalledFolder", InstallAddress)
Estoy implementando mi aplicación utilizando un instalador msi diseñado con un proyecto de instalación de Visual Studio. ¿Cómo configuro una clave de registro para la ruta de instalación de la aplicación?
En realidad, mientras buscaba lo mismo, también se mencionó la siguiente solución:
Utilice [TARGETDIR] en la clave de registro.
Solo para agregar a poner [TARGETDIR] en la clave de registro como el valor. Si está utilizando el escudo de instalación para vs2012, use [INSTALLDIR] en lugar de la clave de registro.
Una forma de hacer esto sería crear una acción personalizada en su instalador. En la acción personalizada, puede proporcionar CustomActionData "/ Path =" [TARGETDIR] * ". Dentro de su código de acción personalizado, puede hacer referencia a Context.Parameters [" Path "] y recibir la ruta de instalación pasada del instalador en su código .NET.
Ahora que tiene [TARGETDIR] dentro de su código de acción personalizado, puede continuar usando el espacio de nombres Microsoft.Win32 para configurar la clave de registro.
HTH - Wil