¡Estoy usando InstallUtil para instalar mi servicio y simplemente no puedo encontrar la manera de especificar los parámetros de inicio para él!Uso de InstallUtil para instalar un servicio de Windows con los parámetros de inicio
Aquí está mi subclase Instalador:
[RunInstaller(true)]
public class ServerHostInstaller : Installer
{
private ServiceInstaller m_serviceInstaller;
private ServiceProcessInstaller m_serviceProcessInstaller;
private static string s_usage = "Usage:\ninstallutil /i /username=<user_name> /password=<user_password> NCStub.Server.Host.exe";
public ServerHostInstaller()
{
m_serviceInstaller = new ServiceInstaller();
m_serviceInstaller.ServiceName = Program.ServiceName;
m_serviceInstaller.DisplayName = Program.ServiceName;
m_serviceInstaller.StartType = ServiceStartMode.Automatic;
m_serviceProcessInstaller = new ServiceProcessInstaller();
m_serviceProcessInstaller.Account = ServiceAccount.User;
Installers.Add(m_serviceInstaller);
Installers.Add(m_serviceProcessInstaller);
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
string userName = this.Context.Parameters["username"];
if (userName == null)
{
Console.WriteLine(s_usage);
throw new InstallException("Missing parameter 'username'");
}
string userPass = this.Context.Parameters["password"];
if (userPass == null)
{
Console.WriteLine(s_usage);
throw new InstallException("Missing parameter 'password'");
}
m_serviceProcessInstaller.Username = userName;
m_serviceProcessInstaller.Password = userPass;
}
}
¿Alguien puede indicar cómo puedo especificar los parámetros de inicio del servicio?
Este enfoque también funciona si conecta un controlador al evento BeforeInstall del objeto de instalador de servicio en lugar de anular el método de instalación. –
En realidad, no, no es así. Debería y estoy bastante seguro de que solía hacerlo, pero acabo de comprobar y no es así. Quédate con la versión de anulación –
Tengo la misma solución para pasar credenciales a mi instalador. El problema es que el archivo de registro también contiene sus credenciales, lo cual es un gran problema en mi opinión. ¿Tiene una idea de cómo desactivar la escritura de "Los parámetros afectados son:" en el archivo de registro? ¡No quiero deshabilitar el archivo de registro completo! – flayn