У меня есть класс установщика, использующий ServiceProcessInstaller
. В классе установщика в конструкторе я добавляю его в установщики:
serviceProcessInstaller = new ServiceProcessInstaller();
serviceInstaller = new ServiceInstaller();
// Add Both Installers to Project Installers Collection to be Run
Installers.AddRange(new Installer[]
{
serviceProcessInstaller,
serviceInstaller
});
и в методе установки я устанавливаю имя пользователя и пароль:
public override void Install(IDictionary stateSaver)
{
.... open the form, bla bla bla
serviceProcessInstaller.Password = accountForm.txtPassword.Text;
serviceProcessInstaller.Username = accountForm.txtServiceAccount.Text;
serviceProcessInstaller.Account = ServiceAccount.User;
}
однако, когда я пытаюсь запустить его, я получаю очень описательное сообщение об ошибке: «Не было сопоставления между именами учетных записей и идентификаторами безопасности». Что я делаю не так?
РЕДАКТИРОВАТЬ: я проверял, что эта ошибка происходит только при установке этого компонента с использованием пакета MSI. Он отлично работает, когда я запускаю InstallUtil против него.