전역 어셈블리 캐시 도구(Gacutil.exe)
업데이트: 2007년 11월
전역 어셈블리 캐시 도구를 사용하면 전역 어셈블리 캐시와 다운로드 캐시의 내용을 보고 조작할 수 있습니다.
gacutil [options] [assemblyName | assemblyPath | assemblyListFile]
매개 변수
인수 |
설명 |
---|---|
assemblyName |
어셈블리의 이름입니다. myAssembly와 같이 부분적인 어셈블리 이름이나 myAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5와 같이 완전한 어셈블리 이름을 지정할 수 있습니다. |
assemblyPath |
어셈블리 매니페스트가 들어 있는 파일의 이름을 나타냅니다. |
assemblyListFile |
설치 또는 제거할 어셈블리를 나열하는 ANSI 텍스트 파일의 경로입니다. 텍스트 파일을 사용하여 어셈블리를 설치하려면 각 어셈블리 경로를 해당 파일에서 별도의 줄에 지정하십시오. 이 도구에서는 각 파일의 경로를 assemblyListFile의 위치를 기준으로 하는 상대 경로로 해석합니다. 텍스트 파일을 사용하여 어셈블리를 제거하려면 각 어셈블리의 정규화된 어셈블리 이름을 해당 파일에서 별도의 줄에 지정하십시오. 자세한 내용은 이 항목의 뒷 부분에 있는 assemblyListFile 내용 예제를 참조하십시오. |
옵션 |
설명 |
---|---|
/cdl |
다운로드 캐시의 내용을 삭제합니다. |
/f |
어셈블리를 강제로 다시 설치하려면 /i 또는 /il 옵션과 함께 이 옵션을 지정합니다. 동일한 이름의 어셈블리가 전역 어셈블리 캐시에 이미 있으면 해당 어셈블리를 덮어씁니다. |
/h[elp] |
이 도구의 명령 구문 및 옵션을 표시합니다. |
/i assemblyPath |
전역 어셈블리 캐시에 어셈블리를 설치합니다. |
/if assemblyPath |
전역 어셈블리 캐시에 어셈블리를 설치합니다. 동일한 이름의 어셈블리가 전역 어셈블리 캐시에 이미 있으면 해당 어셈블리를 덮어씁니다. 이 옵션을 지정하는 것은 /i 및 /f 옵션을 함께 지정하는 것과 같습니다. |
/il assemblyListFile |
assemblyListFile에 지정된 하나 이상의 어셈블리를 전역 어셈블리 캐시에 설치합니다. |
/ir assemblyPath scheme id description |
어셈블리를 전역 어셈블리 캐시에 설치하고 어셈블리 수를 계산하는 참조를 추가합니다. 이 옵션과 함께 assemblyPath, scheme, id 및 description 매개 변수를 지정해야 합니다. 이러한 매개 변수에 대해 지정할 수 있는 유효한 값에 대한 설명은 /r 옵션을 참조하십시오. 이 옵션을 지정하는 것은 /i 및 /r 옵션을 함께 지정하는 것과 같습니다. |
/l [assemblyName] |
전역 어셈블리 캐시의 내용을 나열합니다. assemblyName 매개 변수를 지정하면 이 도구에서는 해당 이름과 일치하는 어셈블리만 나열합니다. |
/ldl |
다운로드된 파일 캐시의 내용을 나열합니다. |
/lr [assemblyName] |
모든 어셈블리와 해당 참조 횟수를 나열합니다. assemblyName 매개 변수를 지정하면 이 도구에서는 해당 이름 및 해당 참조 횟수와 일치하는 어셈블리만 나열합니다. |
/nologo |
Microsoft 시작 배너를 표시하지 않습니다. |
/r [assemblyName | assemblyPath] scheme id description |
설치 또는 제거할 어셈블리에 대해 추적된 참조를 지정합니다. /i, /il, /u 또는 /ul 옵션과 함께 이 옵션을 지정하십시오. 어셈블리를 설치하려면 이 옵션과 함께 assemblyPath, scheme, id 및 description 매개 변수를 지정합니다. 어셈블리를 제거하려면 assemblyName, scheme, id 및 description 매개 변수를 지정합니다. 어셈블리에 대한 참조를 제거하려면 어셈블리가 설치될 때 /i 및 /r(또는 /ir) 옵션으로 지정된 것과 동일한 scheme, id 및 description 매개 변수를 지정해야 합니다. 어셈블리를 제거할 때 해당 어셈블리가 제거할 마지막 참조이고 Windows Installer에 어셈블리에 대한 미해결 참조가 없으면 이 도구에서는 전역 어셈블리 캐시에서 어셈블리를 제거합니다 scheme 매개 변수는 설치 스키마의 유형을 지정합니다. 다음 값 중 하나를 지정할 수 있습니다.
id 매개 변수에 대해 지정할 값은 다음과 같이 scheme 매개 변수에 지정되는 값에 따라 결정됩니다.
description 매개 변수를 사용하면 설치할 응용 프로그램에 대한 설명 텍스트를 지정할 수 있습니다. 이 정보는 참조가 열거될 때 표시됩니다. |
/silent |
모든 출력을 표시하지 않습니다. |
/u assemblyName |
전역 어셈블리 캐시에서 어셈블리를 제거합니다. |
/uf assemblyName |
어셈블리에 대한 모든 참조를 제거하여 지정된 어셈블리를 강제로 제거합니다. 이 옵션을 지정하는 것은 /u 및 /f 옵션을 함께 지정하는 것과 같습니다. 참고 Microsoft Windows Installer를 사용하여 설치한 어셈블리는 이 옵션으로 제거할 수 없습니다. 이 작업을 시도하면 오류 메시지가 표시됩니다. |
/ulassemblyListFile |
전역 어셈블리 캐시에서 assemblyListFile에 지정된 하나 이상의 어셈블리를 제거합니다. |
/u[ngen] assemblyName |
전역 어셈블리 캐시에서 지정된 어셈블리의 설치를 제거합니다. 지정된 어셈블리가 기존의 참조 횟수를 갖는 경우 이 도구에서는 해당 참조 횟수를 표시하고 전역 어셈블리 캐시에서 해당 어셈블리를 제거하지 않습니다. 참고 .NET Framework 버전 2.0에서 /ungen은 지원되지 않습니다. 대신 네이티브 이미지 생성기(Ngen.exe)의 uninstall 명령을 사용하십시오. .NET Framework 버전 1.0 및 1.1에서 /ungen을 지정하면 Gacutil.exe가 네이티브 이미지 캐시에서 어셈블리를 제거합니다. 이 캐시에서는 네이티브 이미지 생성기(Ngen.exe)를 사용하여 만들어진 어셈블리의 네이티브 이미지를 저장합니다. |
/ur assemblyName scheme id description |
전역 어셈블리 캐시에서 지정된 어셈블리의 참조를 제거합니다. 어셈블리에 대한 참조를 제거하려면 어셈블리가 설치될 때 /i 및 /r(또는 /ir) 옵션으로 지정된 것과 동일한 scheme, id 및 description 매개 변수를 지정해야 합니다. 이러한 매개 변수에 대해 지정할 수 있는 유효한 값에 대한 설명은 /r 옵션을 참조하십시오. 이 옵션을 지정하는 것은 /u 및 /r 옵션을 함께 지정하는 것과 같습니다. |
/? |
이 도구의 명령 구문 및 옵션을 표시합니다. |
설명
이 도구를 사용하여 캐시를 Windows 셸 확장(Shfusion.dll)으로 표시하는 기능과 비슷한 기능을 사용할 수 있지만, 빌드 스크립트, 메이크파일 및 배치 파일에서 보다 쉽게 사용할 수 있습니다.
참고
Gacutil.exe를 사용하려면 관리자 권한이 있어야 합니다.
특히, Gacutil.exe를 사용하면 캐시에 어셈블리를 설치하거나, 캐시에서 어셈블리를 제거하거나, 캐시의 내용을 나열할 수 있습니다.
Gacutil.exe는 Windows Installer에서 지원하는 참조 횟수 계산 스키마와 비슷한 참조 횟수 계산 기능을 지원하는 옵션을 제공합니다. Gacutil.exe를 사용하여 동일한 어셈블리를 설치하는 두 개의 응용 프로그램을 설치할 수 있습니다. 이 도구는 어셈블리에 대한 참조의 개수를 추적합니다. 따라서 어셈블리는 두 응용 프로그램이 모두 제거될 때까지 컴퓨터에 남아 있습니다. 실제 제품 설치를 위해 Gacutil.exe를 사용하는 경우 참조 횟수 계산을 지원하는 옵션을 사용하십시오. 어셈블리를 설치하고 개수를 계산하는 참조를 추가하려면 /i 및 /r 옵션을 함께 사용합니다. 어셈블리에 대한 참조 횟수를 제거하려면 /u 및 /r 옵션을 함께 사용합니다. /i 및 /u 옵션을 단독으로 사용하면 참조 횟수 계산이 지원되지 않습니다. 이러한 옵션은 제품 개발 중에 사용하는 것이 적절하며 실제 제품을 설치할 때는 사용하지 않는 것이 좋습니다.
ANSI 텍스트 파일에 저장된 어셈블리 목록을 설치 또는 제거하려면 /il 또는 /ul 옵션을 사용합니다. 텍스트 파일의 내용은 올바른 서식으로 지정되어 있어야 합니다. 텍스트 파일을 사용하여 어셈블리를 설치하려면 각 어셈블리 경로를 해당 파일에서 별도의 줄에 지정하십시오. 다음 예제에서는 설치할 어셈블리를 포함하는 파일의 내용을 보여 줍니다.
myAssembly1.dll
myAssembly2.dll
myAssembly3.dll
텍스트 파일을 사용하여 어셈블리를 제거하려면 각 어셈블리의 정규화된 어셈블리 이름을 해당 파일에서 별도의 줄에 지정하십시오. 다음 예제에서는 제거할 어셈블리를 포함하는 파일의 내용을 보여 줍니다.
myAssembly1,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly2,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
myAssembly3,Version=1.1.0.0,Culture=en,PublicKeyToken=874e23ab874e23ab
예제
다음 명령은 전역 어셈블리 캐시에 mydll.dll 어셈블리를 설치합니다.
gacutil /i mydll.dll
다음 명령은 해당 어셈블리에 대한 참조 횟수가 없는 경우 전역 어셈블리 캐시에서 어셈블리 hello를 제거합니다.
gacutil /u hello
앞의 명령을 사용하면 어셈블리 이름이 전부 지정되지 않기 때문에 어셈블리 캐시에서 둘 이상의 어셈블리를 제거할 수도 있습니다. 예를 들어, 캐시에 hello의 1.0.0.0 버전 및 3.2.2.1 버전이 모두 설치된 경우 gacutil /u hello 명령을 사용하면 두 어셈블리가 모두 제거됩니다.
둘 이상의 어셈블리가 제거되지 않도록 하려면 다음 예제를 사용합니다. 이 명령을 사용하면 완전히 지정된 버전 번호, culture 및 공개 키와 일치하는 hello 어셈블리만 제거됩니다.
gacutil /u hello, Version=1.0.0.1, Culture="de",PublicKeyToken=45e343aae32233ca
다음 명령은 파일 assemblyList.txt에 지정된 어셈블리를 전역 어셈블리 캐시에 설치합니다.
gacutil /il assemblyList.txt
다음 명령은 전역 어셈블리 캐시에서 파일 assemblyList.txt에 지정된 어셈블리를 제거합니다.
gacutil /ul assemblyList.txt
다음 명령은 전역 어셈블리 캐시에 myDll.dll을 설치하고 해당 어셈블리 개수를 계산하는 참조를 추가합니다. 어셈블리 myDll.dll은 응용 프로그램 MyApp에 의해 사용됩니다. UNINSTALL_KEY MyApp 매개 변수는 Windows의 프로그램 추가/제거에 MyApp를 추가하는 레지스트리 키를 지정합니다. 설명 매개 변수는 My Application Description으로 지정됩니다.
gacutil /i /r myDll.dll UNINSTALL_KEY MyApp "My Application Description"
다음 명령은 전역 어셈블리 캐시에 myDll.dll을 설치하고 해당 어셈블리 개수를 계산하는 참조를 추가합니다. 스키마 매개 변수 FILEPATH와 id 매개 변수 c:\applications\myApp\myApp.exe는 myDll.dll.을 설치 중인 응용 프로그램 경로를 지정합니다. description 매개 변수는 MyApp로 지정됩니다.
gacutil /i /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp
다음 명령은 전역 어셈블리 캐시에 myDll.dll을 설치하고 해당 어셈블리 개수를 계산하는 참조를 추가합니다. 스키마 매개 변수 OPAQUE를 사용하면 id 및 description 매개 변수를 사용자 지정할 수 있습니다.
gacutil /i /r mydll.dll OPAQUE "Insert custom application details here" "Insert Custom description information here"
다음 명령은 응용 프로그램 myApp에 의한 myDll.dll에 대한 참조를 제거합니다. 이 참조가 어셈블리에 대한 마지막 참조인 경우 전역 어셈블리 캐시에서 해당 어셈블리도 제거됩니다.
gacutil /u /r myDll.dll FILEPATH c:\applications\myApp\myApp.exe MyApp
다음 명령은 전역 어셈블리 캐시의 내용을 나열합니다.
gacutil /l