Установка Inno для службы Windows?

Используйте для @Ignore аннотация. Это также работает над классами. Посмотрите этого:

@Ignore public class IgnoreMe {
                        @Test public void test1() { ... }
                        @Test public void test2() { ... }
                }

кроме того, можно аннотировать класс, содержащий методы тестирования с @Ignore, и ни одно из содержания тестов не будет выполняться.

Источник: JUnit JavaDoc

104
задан Vikrant 3 November 2016 в 10:08
поделиться

3 ответа

Вам не нужен installutil.exe и, возможно, у вас даже нет прав на его распространение.

Вот как я это делаю в мое приложение:

using System;
using System.Collections.Generic;
using System.Configuration.Install; 
using System.IO;
using System.Linq;
using System.Reflection; 
using System.ServiceProcess;
using System.Text;

static void Main(string[] args)
{
    if (System.Environment.UserInteractive)
    {
        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.Run(new WindowsService());
    }
}

В основном вы можете установить / удалить свою службу самостоятельно, используя ManagedInstallerClass , как показано в моем примере.

Тогда просто нужно добавить в ваш сценарий InnoSetup что-то вроде этого :

[Run]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--install"

[UninstallRun]
Filename: "{app}\MYSERVICE.EXE"; Parameters: "--uninstall"
227
ответ дан 24 November 2019 в 04:08
поделиться

Если вы хотите избежать перезагрузок при обновлении пользователя, то вам необходимо остановить службу перед копированием exe и запустить ее снова после.

Есть несколько скриптовых функций для этого на Service - Functions to Start, Stop, Install, Remove a Service

2
ответ дан 24 November 2019 в 04:08
поделиться

Вы можете использовать

Exec(
    ExpandConstant('{sys}\sc.exe'),
    ExpandConstant('create "MyService" binPath= {app}\MyService.exe start= auto DisplayName= "My Service" obj= LocalSystem'), 
    '', 
    SW_HIDE, 
    ewWaitUntilTerminated, 
    ResultCode
    )

для создания службы. См. раздел "sc.exe" о том, как запустить, остановить, проверить состояние службы, удалить службу и т.д.

5
ответ дан 24 November 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: