Установка службы Windows C # inno self с использованием класса managedinstaller - PullRequest
1 голос
/ 22 августа 2011

используя код, подобный этому Служба Inno Setup для Windows?

в окне Windows 7 (VS 2010), когда я пытаюсь запустить программу установки Inno, я получаю следующий результат

Обнаружены общедоступные установщики с атрибутом RunInstallerAttribute.Yes

Служба работает, если работает со стандартным установщиком Windows;Вот код:

[RunInstaller(true)]
internal static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    public static void Main(string[] args)
    {
        if (args.Count()==1)
        {
            string parameter = string.Concat(args);
            switch (parameter)
            {
                case "--install":
                    ManagedInstallerClass.InstallHelper(new string[] {Assembly.GetExecutingAssembly().Location});
                    break;
                case "--uninstall":
                    ManagedInstallerClass.InstallHelper(new string[]
                                                            {"/u", Assembly.GetExecutingAssembly().Location});
                    break;
            }
        }
        else
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
                                {
                                    new SkyLibrarian()
                                };
            ServiceBase.Run(ServicesToRun);
        }
    }
}

У кого-нибудь есть опыт решения этой проблемы?Я запускаю установщик с правами администратора.Спасибо

Саймон Норберн

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Это была простая ошибка. Файл ProjectInstaller был поврежден и удален из решения. Он должен был заменить его, но кто-то «забыл». Как только это было найдено, проблема решилась сама собой. Сообщение об ошибке не было ни описательным, ни полезным.

0 голосов
/ 22 августа 2011

Проблема четко указана в вашем сообщении об ошибке и в вставленном коде.В сообщении об ошибке указывается, что «не найдено ни одного общедоступного установщика с атрибутом RunInstallerAttribute.Yes».В своем фрагменте кода вы объявляете свой класс Program (с атрибутом RunInstaller равным true) как internal .

Измените объявление класса на public, и оно должно работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...