Я хочу установить службу Windows с помощью командной строки Windows (а не командной строки Visual Studio).
Как это сделать?
Я хочу установить службу Windows с помощью командной строки Windows (а не командной строки Visual Studio).
Как это сделать?
Перейдите в файл installutil.exe в своей .net-папке (например, для .net 4 это C:\Windows\Microsoft.NET\Framework\v4.0.30319) и используйте его для установки вашей службы, например:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"
Ничего плохого в команде SC Create. Просто вам нужно знать правильные аргументы:
SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Если имя каталога имеет пробел, как c:\program files\abc 123
, тогда вы должны использовать двойные кавычки вокруг пути.
installutil.exe "c:\program files\abc 123\myservice.exe"
Это упрощает работу, если вы установили файл bat, как показано ниже,
например. Чтобы установить службу, создайте "myserviceinstaller.bat" и " Запуск от имени администратора"
@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"
if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause
для удаления службы,
Просто добавьте команду -u в команду installutil.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"
Выполните следующее:
c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
Важно открыть с правами администратора, иначе вы можете найти ошибки, которые не имеют смысла. Если он у вас есть, убедитесь, что вы открыли его с правами администратора.
Чтобы открыть с правами администратора, щелкните правой кнопкой мыши "Командная строка" и выберите "Запуск от имени администратора".
Установить сервис: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"
"C:\Services\myservice.exe"
Удалить сервис: -
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"
Я должен добавить еще одну точку в этом потоке. Чтобы установить/удалить 64-разрядную версию сборок, необходимо использовать 64-разрядную версию инструмента. Чтобы установить службу, команда должна быть:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"
и для удаления команды должно быть:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"
Создайте файл *.bat
рядом с файлом exe
службы Windows для установки в следующем контексте:
CLS
ECHO Installing My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"
Создайте файл *.bat
рядом с файлом exe
службы Windows для удаления в следующем контексте:
CLS
ECHO Uninstalling My Windows Service
START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"
Запустите каждый файл bat
от имени администратора, чтобы установить или удалить службу Windows.
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
, чтобы перейти в папкуinstallutil C:\ProjectFolder\bin\Debug\MyProject.exe
Примечание: Чтобы удалить: installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe
Если вы используете Powershell и хотите установить службу .NET, вы можете использовать модуль Install-Service. Это обертка для инструмента InstalUtil.
Это выставляет 3 команды
Код к этому модулю можно посмотреть здесь
Откройте Visual Studio и выберите новый проект, выбрав шаблон Windows Service
на вкладке " Windows Desktop
". Затем скопируйте следующий код в файл service_name.cs.
using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
public partial class Timer_Service : ServiceBase
{
public Timer_Service()
{
InitializeComponent();
}
static void Main()
{
if (System.Diagnostics.Debugger.IsAttached)
{
Timer_Service service = new Timer_Service();
service.OnStart(null);
}
else
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Timer_Service()
};
ServiceBase.Run(ServicesToRun);
}
}
protected override void OnStart(string[] args)
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
}
protected override void OnStop()
{
EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
}
}
}
Щелкните правой кнопкой мыши файл service_name.cs и откройте конструктор сервиса. чем щелкнуть правой кнопкой мыши и выбрать Add Installer
. чем щелкнуть правой кнопкой мыши на serviceProcessInstaller1
и изменить значение его свойства Account
с User
на Local System
.
Удалите static void main
метод static void main
из файла Program.cs
. Чем сохранить и построить свой проект.
ПРИМЕЧАНИЕ: bin\Ddebug
папку bin\Ddebug
папки вашего проекта. Чем открыть Свойства вашего файла service_name.exe
. Чем перейти на вкладку " Compatibility
". Затем нажмите " Change Settings For All Users
.
Выберите опцию Run this program as an administrator
.
Теперь вам нужно открыть CommandPromt от имени администратора. После открытия установите каталог, в котором InstallUtil.exe
файл InstallUtil.exe
. например: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
. Теперь напишите следующую команду:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe
Примечание: -i для установки службы и -u для удаления.
после -i укажите путь, по которому вы хотите установить службу.
Теперь напишите команду в CommandPromt следующим образом:
C:\TimerService\TimerService\bin\Debug>net start service_name
Примечание: используйте stop
для остановки Сервиса.
Теперь откройте ViewEventLog.exe
. Выберите Журналы Windows> Приложение. Там вы можете проверить свой Сервисный журнал, запустив и остановив сервис.
следующий код, установить и удалить Сервис,
Откройте командную строку и запустите программу от имени администратора, запустите указанную ниже команду и нажмите клавишу ввода.
Синтаксис
Установить
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe
Например: наш путь InstallUtil.exe C:\MyFirstService\bin\Debug\MyFirstService.exe
Удалить
C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe
Например: наш путь InstallUtil.exe -u C:\MyFirstService\bin\Debug\MyFirstService.exe
для получения дополнительной помощи вы можете увидеть следующую ссылку: пример программы
Выполните шаги при развертывании службы Windows, не теряйте время
1- Запустить командную строку по праву администратора
2- Страховка о режиме релиза при компиляции в вашей IDE
3- Дайте тип вашему установщику проекта в режиме конструктора
4- Выберите тип аутентификации в соответствии с регистром
5- Страхование от программных зависимостей: если вы используете сертификат, установите его правильно
6- Иди к своей консоли напиши это:
C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe
перед exe-путем -i c:\
есть скрытый аргумент -i c:\
вы можете использовать для удаления -u
7- Посмотрите свой путь .exe, чтобы увидеть файл журнала. Вы можете использовать просмотрщик событий для наблюдения в функции
когда ваша сборочная версия и ваш проект Visual Studio Biuld в точке net 2 или 4 устанавливаются с той же версией.
установить сервис с installutil
той же версии
если построить в точечной сети 4
Введите c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe
если построить в точечной сети 2
Введите c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe
Откройте командную строку от имени администратора, перейдите в папку, где находится ваш .exe
.
Установить Exe
как службу
D:\YourFolderName\YourExeName /i
Для удаления используйте /u
.
Вы должны открыть командную строку, перейти к
C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"