Regasm.exe(어셈블리 등록 도구)Regasm.exe (Assembly Registration Tool)

어셈블리 등록 도구를 사용하면 어셈블리 내의 메타데이터를 읽고 필요한 엔트리를 레지스트리에 추가할 수 있습니다. 이렇게 하면 COM 클라이언트에서 .NET Framework 클래스를 투명하게 만들 수 있습니다.The Assembly Registration tool reads the metadata within an assembly and adds the necessary entries to the registry, which allows COM clients to create .NET Framework classes transparently. 클래스가 등록되고 나면 COM 클라이언트에서는 해당 클래스가 마치 COM 클래스인 것처럼 사용할 수 있습니다.Once a class is registered, any COM client can use it as though the class were a COM class. 클래스는 어셈블리가 설치될 때 한 번만 등록됩니다.The class is registered only once, when the assembly is installed. 클래스가 실제로 등록되어야만 COM에서 어셈블리 내의 클래스 인스턴스를 만들 수 있습니다.Instances of classes within the assembly cannot be created from COM until they are actually registered.

도구를 실행하려면 Visual Studio용 개발자 명령 프롬프트를 사용합니다.To run the tool, use the Developer Command Prompt for Visual Studio. 자세한 내용은 명령 프롬프트를 참조하세요.For more information, see Command Prompts.

명령 프롬프트에 다음을 입력합니다.At the command prompt, type the following:

구문Syntax

regasm assemblyFile [options]

매개 변수Parameters

매개 변수Parameter 설명Description
assemblyFileassemblyFile COM을 사용하여 등록할 어셈블리를 나타냅니다.The assembly to be registered with COM.
옵션Option 설명Description
/codebase/codebase 레지스트리에 있는 코드베이스 엔트리를 만듭니다.Creates a Codebase entry in the registry. 코드베이스 엔트리는 전역 어셈블리 캐시에 설치되지 않은 어셈블리에 대한 파일 경로를 지정합니다.The Codebase entry specifies the file path for an assembly that is not installed in the global assembly cache. 전역 어셈블리 캐시에 등록 중인 어셈블리를 다음에 설치하려면 이 옵션을 지정해야 합니다.You should not specify this option if you will subsequently install the assembly that you are registering into the global assembly cache. /codebase 옵션을 사용하여 지정한 assemblyFile 인수는 강력한 이름의 어셈블리여야 합니다.The assemblyFile argument that you specify with the /codebase option must be a strong-named assembly.
/registered/registered 이 도구가 이미 등록된 형식 라이브러리만 참조하도록 지정합니다.Specifies that this tool will only refer to type libraries that have already been registered.
/asmpath:directory/asmpath:directory 어셈블리 참조가 들어 있는 디렉터리를 지정합니다.Specifies a directory containing assembly references. /regfile 옵션과 함께 사용해야 합니다.Must be used with the /regfile option.
/nologo/nologo Microsoft 시작 배너를 표시하지 않습니다.Suppresses the Microsoft startup banner display.
/regfile [: regFile]/regfile [: regFile] 어셈블리에 대해 필요한 레지스트리 항목이 들어 있는 지정된 .reg 파일을 생성합니다.Generates the specified .reg file for the assembly, which contains the needed registry entries. 이 옵션을 지정할 경우 레지스트리는 변경되지 않습니다.Specifying this option does not change the registry. 이 옵션은 /u 또는 /tlb 옵션과 함께 사용할 수 없습니다.You cannot use this option with the /u or /tlb options.
/silent 또는 /s/silent or /s 성공 메시지를 표시하지 않습니다.Suppresses the display of success messages.
/tlb [: typeLibFile]/tlb [: typeLibFile] 어셈블리 내에 정의된 액세스 가능 형식에 대한 정의가 들어 있는 지정된 어셈블리에서 형식 라이브러리를 생성합니다.Generates a type library from the specified assembly containing definitions of the accessible types defined within the assembly.
/unregister 또는 /u/unregister or /u assemblyFile에 있는 생성 가능한 클래스를 등록 취소합니다.Unregisters the creatable classes found in assemblyFile. 이 옵션을 지정하지 않으면 Regasm.exe를 통해 해당 어셈블리의 생성 가능한 클래스가 등록됩니다.Omitting this option causes Regasm.exe to register the creatable classes in the assembly.
/verbose/verbose 세부 정보 표시 모드를 지정합니다. 즉, /tlb 옵션과 함께 지정할 경우 형식 라이브러리가 생성되어야 하는 참조된 어셈블리의 목록을 표시합니다.Specifies verbose mode; displays a list of any referenced assemblies for which a type library needs to be generated, when specified with the /tlb option.
/?/? 또는 /helpor /help 이 도구의 명령 구문 및 옵션을 표시합니다.Displays command syntax and options for the tool.

참고

Regasm.exe의 명령줄 옵션은 대/소문자가 구분되지 않습니다.The Regasm.exe command-line options are case insensitive. 따라서 옵션을 고유하게 식별할 수 있을 정도로만 옵션을 지정하면 됩니다.You only need to provide enough of the option to uniquely identify it. 예를 들어, /n/nologo와 같고, /t: outfile.tlb/tlb: outfile.tlb와 같습니다.For example, /n is equivalent to /nologo and /t: outfile.tlb is equivalent to /tlb: outfile.tlb.

주의Remarks

/regfile 옵션을 사용하면 레지스트리를 직접 변경하는 대신 레지스트리 항목이 들어 있는 .ref 파일을 생성할 수 있습니다.You can use the /regfile option to generate a .reg file that contains the registry entries instead of making the changes directly to the registry. 레지스트리 편집기 도구(Regedit.exe)를 사용하여 .reg 파일을 가져오면 시스템의 레지스트리를 업데이트할 수도 있습니다.You can update the registry on a computer by importing the .reg file with the Registry Editor tool (Regedit.exe). 사용자 정의 등록 함수에서 수행되는 레지스트리 업데이트 내용은 .reg 파일에 포함되지 않습니다.Note that the .reg file does not contain any registry updates that can be made by user-defined register functions. /regfile 옵션은 관리되는 클래스에 대한 레지스트리 항목만 내보냅니다.Note that the /regfile option only emits registry entries for managed classes. 이 옵션은 TypeLibID 또는 InterfaceID에 대한 항목은 내보내지 않습니다.This option does not emit entries for TypeLibIDs or InterfaceIDs.

/tlb 옵션을 지정하면 Regasm.exe를 사용하여 해당 어셈블리에 있는 형식을 설명하는 형식 라이브러리를 생성 및 등록할 수 있습니다.When you specify the /tlb option, Regasm.exe generates and registers a type library describing the types found in the assembly. 이렇게 생성된 형식 라이브러리는 현재 작업 디렉터리 또는 출력 파일에 대해 지정된 디렉터리에 포함됩니다.Regasm.exe places the generated type libraries in the current working directory or the directory specified for the output file. 다른 어셈블리를 참조하는 어셈블리에 대해 형식 라이브러리를 생성하면 한 번에 여러 개의 형식 라이브러리를 생성할 수 있습니다.Generating a type library for an assembly that references other assemblies may cause several type libraries to be generated at once. 형식 라이브러리를 사용하여 Visual Studio와 같은 개발 도구에 형식 정보를 제공할 수 있습니다.You can use the type library to provide type information to development tools like Visual Studio. 등록할 어셈블리가 형식 라이브러리 가져오기(Tlbimp.exe)를 통해 만들어진 경우에는 /tlb 옵션을 사용하면 안 됩니다.You should not use the /tlb option if the assembly you are registering was produced by the Type Library Importer (Tlbimp.exe). 왜냐하면 형식 라이브러리에서 가져온 어셈블리에서는 형식 라이브러리를 내보낼 수 없기 때문입니다.You cannot export a type library from an assembly that was imported from a type library. /tlb 옵션을 사용하면 형식 라이브러리 내보내기(Tlbexp.exe) 및 Regasm.exe를 사용할 때와 같은 결과가 발생합니다. 그러나 Tlbexp.exe를 사용하여 생성한 형식 라이브러리는 등록할 수 없습니다.Using the /tlb option has the same effect as using the Type Library Exporter (Tlbexp.exe) and Regasm.exe, with the exception that Tlbexp.exe does not register the type library it produces. /tlb 옵션을 사용하여 형식 라이브러리를 등록한 경우 /tlb 옵션을 /unregister 옵션과 함께 사용하여 해당 형식 라이브러리의 등록을 취소할 수 있습니다.If you use the /tlb option to registered a type library, you can use /tlb option with the /unregister option to unregistered the type library. 이 두 옵션을 함께 사용하면 형식 라이브러리 및 인터페이스 항목의 등록이 취소되며 이로 인해 레지스트리가 상당히 정리될 수 있습니다.Using the two options together will unregister the type library and interface entries, which can clean the registry considerably.

COM에서 사용할 수 있게 어셈블리를 등록하면 Regasm.exe는 로컬 컴퓨터의 레지스트리에 항목을 추가합니다.When you register an assembly for use by COM, Regasm.exe adds entries to the registry on the local computer. 좀 더 구체적으로 말하면 한 대의 컴퓨터에서 동일한 어셈블리의 여러 버전을 side by side 방식으로 실행할 수 있도록 하는 버전별 레지스트리 키를 만듭니다.More specifically, it creates version-dependent registry keys that allow multiple versions of the same assembly to run side by side on a computer. 처음 어셈블리가 등록되면 어셈블리에 대해 하나의 최상위 수준 키가 만들어지고 특정 버전에 대해 고유한 하위 키가 만들어집니다.The first time an assembly is registered, one top-level key is created for the assembly and a unique subkey is created for the specific version. 새 버전의 어셈블리를 등록할 때마다 Regasm.exe는 새 버전에 대한 하위 키를 만듭니다.Each time you register a new version of the assembly, Regasm.exe creates a subkey for the new version.

예를 들어, COM에서 사용하기 위해 관리되는 구성 요소 myComp.dll 버전 1.0.0.0을 등록한다고 가정해 봅시다.For example, consider a scenario where you register the managed component, myComp.dll, version 1.0.0.0 for use by COM. 나중에 myComp.dll, 버전 2.0.0.0을 등록할 수 있습니다.Later, you register myComp.dll, version 2.0.0.0. 컴퓨터의 모든 COM 클라이언트 애플리케이션이 myComp.dll 버전 2.0.0.0을 사용하기로 하고 myComponent.dll 버전 1.0.0.0은 등록 해제하기로 했습니다.You determine that all COM client applications on the computer are using myComp.dll version 2.0.0.0 and you decide to unregister myComponent.dll version 1.0.0.0. 이 레지스트리 스키마를 사용하면 버전 1.0.0.0 하위 키만 제거되므로 myComp.dll 버전 1.0.0.0을 등록 해제할 수 있습니다.This registry scheme allows you to unregister myComp.dll version 1.0.0.0 because only the version 1.0.0.0 subkey is removed.

Regasm.exe를 사용하여 어셈블리를 등록한 다음에는 COM 클라이언트에서 해당 어셈블리를 활성화할 수 있도록 전역 어셈블리 캐시에 설치할 수 있습니다.After registering an assembly using Regasm.exe, you can install it in the global assembly cache so that it can be activated from any COM client. 어셈블리가 한 애플리케이션에서만 활성화되도록 하려면 해당 애플리케이션의 디렉터리에 어셈블리를 포함하면 됩니다.If the assembly is only going to be activated by a single application, you can place it in that application's directory.

예제Examples

다음 명령을 사용하여 myTest.dll에 들어 있는 모든 공용 클래스를 등록합니다.The following command registers all public classes contained in myTest.dll.

regasm myTest.dll

다음 명령을 사용하여 필요한 모든 레지스트리 항목이 들어 있는 myTest.reg 파일을 생성합니다.The following command generates the file myTest.reg, which contains all the necessary registry entries. 그러나 레지스트리는 업데이트되지 않습니다.This command does not update the registry.

regasm myTest.dll /regfile:myTest.reg

다음 명령을 사용하여 myTest.dll에 들어 있는 모든 공용 클래스를 등록하고, myTest.tlb에 정의된 모든 공용 형식에 대한 정의가 들어 있는 형식 라이브러리 myTest.dll를 생성 및 등록합니다.The following command registers all public classes contained in myTest.dll, and generates and registers the type library myTest.tlb, which contains definitions of all the public types defined in myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

참고 항목See also