설치 관리자 도구(Installutil.exe)

업데이트: 2007년 11월

설치 관리자 도구를 사용하면 특정 어셈블리에서 설치 관리자 구성 요소를 실행하는 방법으로 서버 리소스를 설치하고 제거할 수 있습니다. 이 도구는 System.Configuration.Install 네임스페이스의 클래스와 함께 작동합니다.

installutil [/uninstall][option [...]]assemblyname ]
[option [...]]assemblyname 

설명

인수

설명

assemblyname

설치 관리자 구성 요소를 실행할 어셈블리의 이름을 나타냅니다.

옵션

설명

/h[elp]

이 도구의 명령 구문 및 옵션을 표시합니다.

/help assemblypath

지정된 어셈블리 내에서 각 설치 관리자가 인식하는 추가 옵션을 표시합니다.

/?

이 도구의 명령 구문 및 옵션을 표시합니다.

/? assemblypath

지정된 어셈블리 내에서 각 설치 관리자가 인식하는 추가 옵션을 표시합니다.

/LogFile=[filename]

설치 진행 정보가 기록되는 로그 파일의 이름을 지정합니다. 기본값은 assemblyname.InstallLog입니다.

/AssemblyNameassemblyName

[,Version=major.minor.build.revision]

[,Culture=locale]

[,PublicKeyToken=publicKeyToken]]

어셈블리의 이름을 지정합니다. 어셈블리의 버전, 문화권 및 공개 키 토큰을 사용하여 어셈블리 이름을 정규화해야 합니다. 정규화된 어셈블리 이름은 따옴표로 묶어야 합니다.

예를 들어, "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=2.0.0.0"은 정규화된 어셈블리 이름입니다.

/LogToConsole={true|false}

true이면 출력 내용을 콘솔에 표시하고, false(기본값)이면 출력 내용을 콘솔에 표시하지 않습니다.

/ShowCallStack

설치 도중 어느 한 지점에서 예외가 발생하면 호출 스택을 로그에 인쇄합니다.

/u[ninstall]

어셈블리를 제거합니다. 다른 옵션과 달리, /u는 명령줄에서 표시되는 위치에 관계없이 모든 어셈블리에 적용됩니다.

설명

.NET Framework 버전 2.0부터는 32비트 버전의 CLR(공용 언어 런타임)이 32비트 버전의 설치 관리자 도구에만 계속 제공되며, 64비트 버전의 CLR은 32비트 및 64비트 버전의 설치 관리자 도구 모두에 제공됩니다. 64비트 CLR을 사용할 경우에는 32비트 설치 관리자 도구를 사용하여 32비트 어셈블리를 설치하고, 64비트 설치 관리자 도구를 사용하여 64비트 및 Microsoft Intermediate Language 어셈블리를 설치하십시오. 그렇지 않으면 두 버전의 설치 관리자 도구가 동일하게 동작합니다.

Microsoft .NET Framework 응용 프로그램은 일반적인 프로그램 파일과 응용 프로그램 배포 시 만들어야 하는 메시지 큐, 이벤트 로그 및 성능 카운터 등의 관련 리소스로 구성됩니다. 어셈블리의 설치 관리자 구성 요소를 사용하면 응용 프로그램 설치 시에는 이러한 리소스를 만들고, 응용 프로그램 제거 시에는 이러한 리소스를 제거할 수 있습니다. Installutil.exe를 사용하여 이러한 설치 관리자 구성 요소를 감지하고 실행할 수 있습니다.

동일한 명령줄에서 여러 개의 어셈블리를 지정할 수 있습니다. 어셈블리 이름 앞에 나타나는 모든 옵션은 해당 어셈블리의 설치에 적용됩니다. 또한 한 어셈블리에 대해 옵션을 지정한 후 해당 옵션을 새 어셈블리 이름으로 지정하지 않으면 후속 어셈블리에도 같은 옵션이 적용됩니다.

아무 옵션도 지정하지 않고 어셈블리에 대해 Installutil.exe를 실행하면 다음 세 개의 파일이 해당 어셈블리의 디렉터리에 놓입니다.

  • InstallUtil.InstallLog

    설치 진행에 대한 일반적인 설명이 들어 있습니다.

  • assemblyname.InstallLog

    설치 프로세스의 커밋 단계에 관련된 정보가 들어 있습니다. 커밋 단계에 대한 자세한 내용은 Installer.Commit 메서드를 참조하십시오.

  • assemblyname.InstallState

    어셈블리를 제거하는 데 사용되는 데이터가 들어 있습니다.

Installutil.exe를 사용하면 리플렉션으로 지정된 어셈블리를 검사하고, RunInstallerAttributetrue로 설정된 상태에서 모든 Installer 형식을 찾을 수 있습니다. 그런 다음에는 Installer 형식의 각 인스턴스에 대해 Install 메서드 또는 Uninstall 메서드 중 하나를 실행합니다. Installutil.exe를 사용하면 트랜잭션 방식으로 설치를 수행할 수도 있습니다. 즉, 어셈블리가 하나라도 설치되지 않으면 다른 모든 어셈블리의 설치도 롤백됩니다. 그러나 제거 시에는 트랜잭션 방식이 사용되지 않습니다.

Installutil.exe를 사용하면 서명이 연기된 어셈블리를 설치하거나 제거할 수 없지만 강력한 이름의 어셈블리는 설치하거나 제거할 수 있습니다.

C++에서 Installutil.exe를 사용하여 만든 Windows 서비스는 배포할 수 없습니다. Installutil.exe는 C++ 컴파일러에서 만든 포함된 네이티브 코드를 인식하지 못합니다. Installutil.exe로 만든 C++ Windows 서비스를 배포하려고 시도하면 BadImageFormatException과 같은 예외가 throw됩니다. 이 시나리오에 대한 해결 방법은 C++ 모듈에 대한 서비스 코드로 이동하는 것입니다. 그 다음 C# 또는 Visual Basic에 설치 관리나 개체를 작성합니다.

예제

다음 명령을 사용하여 명령 구문 및 옵션에 대한 설명을 표시합니다.

installutil

다음 명령을 사용하여 어셈블리 myAssembly.exe에서 설치 관리자 구성 요소를 실행합니다.

installutil myAssembly.exe

다음 명령은 /AssemblyName 스위치와 정규화된 이름을 사용하여 어셈블리에서 설치 관리자 구성 요소를 실행합니다.

installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=2.0.0.0"

다음 명령을 사용하여 어셈블리 myAssembly.exe에서 설치 제거 관리자 구성 요소를 실행합니다.

installutil /u myAssembly.exe 

다음 명령을 사용하여 어셈블리 myAssembly.exe에서 설치 관리자를 실행하고 진행 정보가 myLog.InstallLog에 기록되도록 지정합니다.

installutil /LogFile=myLog.InstallLog myAssembly.exe 

다음 명령은 myAssembly.exe에 대한 설치 진행률을 myLog.InstallLog에 쓰고, myTestAssembly.exe에 대한 설치 진행률을 myTestLog.InstallLog.에 씁니다.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile = myTestLog.InstallLog myTestAssembly.exe

참고 항목

참조

.NET Framework 도구

System.Configuration.Install

SDK 명령 프롬프트