Установите службу Windows с помощью установщика WIX с настраиваемым аргументом

Я хочу установить стороннюю службу с WIX. Изначально это не была служба Windows, но сторонняя сторона предоставила еще один исполняемый файл, и с помощью некоторых команд мы можем установить его как службу Windows. Я попробовал это с помощью настраиваемого действия как System.Diagnostics.Process, и аргумент, который я предоставил, был:

startServiceProcess.StartInfo.FileName = installExePath;

startServiceProcess.StartInfo.Arguments = string.Format (CultureInfo.InvariantCulture, "{0} {1} {2} {3}", "-c" + FilesPath, @ "- e" + ExePath, @ "- l" + debugFilePath, «-n» + NewServiceName);

Я хочу установить эту службу с элементом ServiceInstall в WIX (без дополнительных действий).

Можно ли каким-либо образом предоставить ServiceInstall настраиваемый аргумент? Эти аргументы также содержат некоторый путь.

Я думаю, вы хотите посмотреть на это: stackoverflow.com/questions/8595338/…

Christopher Painter 03.05.2018 00:53

Вы случайно не знаете, какой инструмент они использовали (если есть) для доставки EXE-файла, который вы устанавливаете в качестве службы? Не похоже, что это преобразованная служба srvany.exe? Является ли последний service.exe сборкой .NET, двоичным файлом C++ или каким-либо другим типом двоичного файла? Вы знаете, где записаны эти параметры командной строки? Если они попадают в реестр, у вас должна быть возможность записать их непосредственно со своего MSI? Многие службы также считывают настройки из файла настроек. Есть ли файл настроек для двоичного файла вашей службы? (он все еще может быть, даже если вам будет предложено использовать параметры командной строки)

Stein Åsmul 03.05.2018 03:26
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
403
1

Ответы 1

Термин «аргументы» может использоваться здесь по-разному.

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

Когда он запускается как установленная служба, есть другие аргументы, которые вы можете передать службе, которые будут использоваться при каждом ее запуске. Вы не хотите, чтобы командная строка «install» использовалась каждый раз при запуске службы, обычно это аргументы времени выполнения для службы.

Таким образом, в идеале службу можно установить с помощью элемента ServiceInstall (вместо командной строки), поскольку ServiceInstall является стандартным способом в установщике Windows. А также сторонней стороне может потребоваться указать, нужны ли для установленной службы какие-либо аргументы (параметры) при каждом запуске. Их можно указать в элементе ServiceInstall, а аргументы представляют собой «отформатированную» строку, поэтому вы можете передавать свойства (например, расположение папок) обычным способом, помещая их в квадратные скобки, например [INSTALLFOLDER]

Другие вопросы по теме