Я немного подробнее расскажу о jdknight. У меня были проблемы с разрешением при попытке его решения, так что вот что я сделал:
void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
{
try
{
RegistryKey key = Registry.LocalMachine.OpenSubKey("System", true); //Opens the System hive with writting permissions set to true
key = key.CreateSubKey("CurrentControlSet"); //CreateSubKey opens if subkey exists, otherwise it will create that subkey
key = key.CreateSubKey("services");
key = key.CreateSubKey(serviceInstaller1.ServiceName);
key.SetValue("DelayedAutostart", 1, RegistryValueKind.DWord);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
}
Я также зарегистрировался в событии AfterInstall, добавив новый экземпляр InstallEventHandler. Я не уверен, действительно ли это необходимо, но это тоже не повредит:
AfterInstall += new InstallEventHandler(ProjectInstaller_AfterInstall);
Работает как шарм в .NET Framework 2.0. Как было указано ранее, для фреймворков 4 и выше используйте
serviceInstaller1.DelayedAutoStart = true;
согласно ответу Фиат.