방법: Windows 서비스 설치 및 제거

참고 항목

이 문서는 .NET의 호스트된 서비스에는 적용되지 않습니다. Microsoft.Extensions.Hosting.BackgroundService 및 Worker Service 템플릿을 사용하는 Windows 서비스의 최신 콘텐츠는 다음을 참조하세요.

.NET Framework를 사용하여 Windows 서비스를 개발하는 경우 InstallUtil.exe 명령줄 유틸리티 또는 PowerShell을 사용하여 서비스 앱을 빠르게 설치할 수 있습니다. 사용자가 설치 및 제거할 수 있는 Windows 서비스를 릴리스하려면 무료 WiX 도구 집합 또는 상용 도구(Advanced InstallerInstallShield 등)를 사용합니다. 자세한 내용은 설치 관리자 패키지 만들기(Windows 데스크톱)를 참조하세요.

Warning

컴퓨터에서 개발하지 않은 서비스를 제거하려면 이 문서의 단계를 따르지 마세요. 서비스를 설치한 프로그램 또는 소프트웨어 패키지를 확인한 다음, 설정에서 을 선택하여 해당 프로그램을 제거합니다. 많은 서비스는 Windows의 필수 요소이므로 제거하는 경우 시스템이 불안정해질 수 있습니다.

이 문서의 단계를 수행하려면 먼저 Windows 서비스에 서비스 설치 관리자를 추가해야 합니다. 자세한 내용은 연습: Windows 서비스 앱 만들기를 참조하세요.

F5 키를 눌러 Visual Studio 개발 환경에서 직접 Windows 서비스 프로젝트를 실행할 수 없습니다. 프로젝트를 실행하려면 먼저 프로젝트에 서비스를 설치해야 합니다.

서버 탐색기를 사용하여 서비스가 설치되거나 제거되었는지 확인할 수 있습니다.

InstallUtil.exe 유틸리티를 사용하여 설치

  1. VS용 개발자 명령 프롬프트를 엽니다.

    시작 메뉴에서 모든 앱을 선택하고 Visual Studio <버전>을 확장한 다음 VS <버전용 개발자 명령 프롬프트>를 선택합니다.

  2. 프로젝트의 컴파일된 실행 파일이 있는 디렉터리로 이동합니다.

  3. 프로젝트 실행 파일을 인수로 사용하여 명령 프롬프트에서 InstallUtil.exe를 실행합니다.

    installutil <yourproject>.exe
    

    Visual Studio용 개발자 명령 프롬프트를 사용하는 경우 InstallUtil.exe가 이미 시스템 경로에 있습니다. 그렇지 않으면 해당 파일을 경로에 추가하거나 정규화된 경로를 사용하여 호출하면 됩니다. 이 도구는 %WINDIR%\Microsoft.NET\Framework[64]\<framework_version>에 .NET Framework와 함께 설치됩니다.

InstallUtil.exe 유틸리티를 사용하여 제거

  1. VS용 개발자 명령 프롬프트를 엽니다.

    시작 메뉴에서 모든 앱을 선택하고 Visual Studio <버전>을 확장한 다음 VS <버전용 개발자 명령 프롬프트>를 선택합니다.

  2. 명령 프롬프트에서 /uninstall 옵션과 프로젝트 실행 파일을 사용하여 InstallUtil.exe를 실행합니다.

    installutil /uninstall <yourproject>.exe
    
  3. 서비스의 실행 파일을 삭제해도 서비스가 레지스트리에 남아 있을 수 있습니다. 이러한 경우에는 sc delete 명령을 사용하여 레지스트리에서 서비스의 항목을 제거합니다.

PowerShell을 사용하여 설치

  1. 시작 메뉴에서 Windows PowerShell을 검색하여 선택합니다.

  2. 프로젝트의 컴파일된 실행 파일이 있는 디렉터리로 이동합니다.

  3. 서비스 이름과 프로젝트 실행 파일을 인수로 사용하여 New-Service cmdlet을 실행합니다.

    New-Service -Name "YourServiceName" -BinaryPathName <yourproject>.exe
    

PowerShell을 사용하여 제거

  1. 시작 메뉴에서 Windows PowerShell을 검색하여 선택합니다.

  2. 서비스 이름을 인수로 사용하여 Remove-Service cmdlet을 실행합니다.

    Remove-Service -Name "YourServiceName"
    

    참고 항목

    이 cmdlet을 사용하려면 PowerShell 6 이상이 있어야 합니다. PowerShell 업데이트에 대한 자세한 내용은 Windows에 PowerShell 설치를 참조하세요.

  3. 서비스의 실행 파일을 삭제해도 서비스가 레지스트리에 남아 있을 수 있습니다. 이러한 경우에는 sc delete 명령을 사용하여 레지스트리에서 서비스의 항목을 제거합니다.

    sc.exe delete "YourServiceName"
    

참고 항목