Regasm.exe (Narzędzie rejestracji zestawów)

Narzędzie do rejestracji zestawów czyta metadane w zestawie i dodaje niezbędne wpisy do rejestru, co umożliwia klientom COM przejrzyste tworzenie klas .NET Framework. Po zarejestrowaniu klasy dowolny klient COM może jej używać tak, jakby była klasą modelu COM. Klasa jest rejestrowana tylko raz, kiedy zestaw jest instalowany. Nie można utworzyć wystąpień klas w zestawie z COM, dopóki nie zostaną one faktycznie zarejestrowane.

Aby uruchomić narzędzie, użyj wiersza polecenia dla deweloperów programu Visual Studio lub programu Visual Studio Developer PowerShell.

W wierszu polecenia wpisz następujące polecenie:

Składnia

regasm assemblyFile [options]

Parametry

Parametr Opis
Assemblyfile Zestaw do rejestracji w modelu COM.
Opcja Opis
/Codebase Tworzy wpis Codebase w rejestrze. Wpis Codebase określa ścieżkę pliku dla zestawu, który nie jest zainstalowany w globalnej pamięci podręcznej zestawów. Nie należy określać tej opcji, jeśli następnie zainstalujesz zestaw zarejestrowany w globalnej pamięci podręcznej zestawów. Zdecydowanie zaleca się, aby argument assemblyFile określony za pomocą opcji /codebase był zestawem o silnej nazwie.
/Zarejestrowany Określa, że narzędzie będzie odnosić się tylko do bibliotek typów, które zostały już zarejestrowane.
/asmpath:directory Określa katalog zawierający odwołania do zestawów. Musi być używany z / regfile opcji.
/nologo Pomija wyświetlanie transparentu startowego firmy Microsoft.
/regfile [:regFile] Generuje określony plik reg dla zestawu zawierający potrzebne wpisy rejestru. Zaznaczenie tej opcji nie powoduje zmiany rejestru. Nie można użyć tej opcji z opcjami /u lub /tlb .
/silent lub /s Pomija wyświetlanie komunikatów o sukcesie.
/tlb [:typeLibFile] Generuje bibliotekę typów z określonego zestawu zawierającego definicje dostępnych typów zdefiniowanych w zestawie.
/unregister lub /u Wyrejestrowuje klasy creatable znalezione w pliku assemblyFile. Pominięcie tej opcji powoduje, że Regasm.exe rejestruje utworzone klasy w zestawie.
/Pełne Określa tryb pełny; Wyświetla listę wszystkich zestawów, do których należy wygenerować bibliotekę typów, po określeniu z opcją /tlb .
/? lub /help Wyświetla składnię polecenia i opcje narzędzia.

Uwaga

W opcjach wiersza polecenia programu Regasm.exe nie jest rozróżniana wielkość liter. Wystarczy podać część nazwy opcji umożliwiającą jej jednoznaczną identyfikację. Na przykład /n jest odpowiednikiem /nologo i /t:outfile.tlb jest odpowiednikiem /tlb:outfile.tlb.

Uwagi

Za pomocą opcji /regfile można wygenerować plik reg zawierający wpisy rejestru, zamiast wprowadzać zmiany bezpośrednio do rejestru. Można zaktualizować rejestr na komputerze przez zaimportowanie pliku reg za pomocą narzędzia Edytora rejestru (Regedit.exe). Plik reg nie zawiera żadnych aktualizacji rejestru, które mogą być wykonywane przez funkcje rejestru zdefiniowane przez użytkownika. Opcja /regfile emituje tylko wpisy rejestru dla klas zarządzanych. Ta opcja nie emituje wpisów dla TypeLibIDs lub InterfaceIDs.

Po określeniu opcji /tlb Regasm.exe generuje i rejestruje bibliotekę typów opisującą typy znalezione w zestawie. Regasm.exe umieszcza wygenerowane biblioteki typów w bieżącym katalogu roboczym lub katalogu określonym dla pliku wyjściowego. Generowanie biblioteki typów dla zestawu, który odwołuje się do innych zestawów może spowodować, że zostanie wygenerowanych kilka bibliotek typów na raz. Możesz użyć biblioteki typów, aby podać informacje o typie do narzędzi programistycznych, takich jak Visual Studio. Nie używaj opcji /tlb , jeśli zarejestrowany zestaw został utworzony przez importera biblioteki typów (Tlbimp.exe). Nie można wyeksportować biblioteki typów z zestawu, który został zaimportowany z biblioteki typów. Użycie opcji /tlb ma taki sam efekt jak użycie eksportera biblioteki typów (Tlbexp.exe) i Regasm.exe, z wyjątkiem, który Tlbexp.exe nie rejestruje biblioteki typów, którą generuje. Jeśli używasz opcji /tlb do rejestrowania biblioteki typów, możesz użyć / tlb opcji z /unregister opcji wyrejestrować bibliotekę typów. Użycie obu tych opcji razem wyrejestruje bibliotekę typów i wpisy interfejsu, co może znacznie oczyścić rejestr.

Po zarejestrowaniu zestawu do użycia przez model COM, Regasm.exe dodaje wpisy do rejestru komputera lokalnego. Dokładniej, tworzy zależne od wersji klucze rejestru, które umożliwiają równoległe uruchomienie na komputerze wielu wersji tego samego zestawu. Po pierwszym zarejestrowaniu zestawu zostanie utworzony jeden klucz najwyższego poziomu dla zestawu, a dla określonej wersji zostanie utworzony unikatowy podklucz. Za każdym razem, gdy rejestrowana jest nowa wersja zestawu, Regasm.exe tworzy podklucz dla nowej wersji.

Na przykład rozważmy scenariusz, w którym rejestrujemy składnik zarządzany myComp.dll w wersji 1.0.0.0 do użycia przez model COM. Później można zarejestrować myComp.dll w wersji 2.0.0.0. Należy określić, że wszystkie aplikacje klienckie modelu COM na komputerze używają myComp.dll w wersji 2.0.0.0 i użytkownik decyduje się wyrejestrować myComponent.dll w wersji 1.0.0.0. Schemat rejestru umożliwia wyrejestrowanie myComp.dll w wersji 1.0.0.0, ponieważ jest usuwany tylko podklucz wersji 1.0.0.0.

Po zarejestrowaniu zestawu przy użyciu Regasm.exe można go zainstalować w globalnej pamięci podręcznej zestawów , aby można było ją aktywować z dowolnego klienta COM. Jeżeli zestaw będzie aktywowany tylko przez jedną aplikację, należy go umieścić w katalogu tej aplikacji. Użycie opcji /codebase jest alternatywą dla korzystania z globalnej pamięci podręcznej zestawów; jednak lokalizacja zestawu podczas rejestracji jest rejestrowana globalnie, a aktywacja zakończy się niepowodzeniem, jeśli zestaw zostanie przeniesiony. Jeśli zestaw nie zostanie znaleziony za pomocą sondowania, opcja /codebase załaduje zestaw w kontekście obciążenia, który ma dodatkowe zagadnienia opisane w Assembly.LoadFromtemacie .

Przykłady

Następujące polecenie rejestruje wszystkie klasy publiczne zawarte w myTest.dllpliku .

regasm myTest.dll

Następujące polecenie generuje plik myTest.reg, który zawiera wszystkie niezbędne wpisy rejestru. Polecenie to nie powoduje aktualizacji rejestru.

regasm myTest.dll /regfile:myTest.reg

Następujące polecenie rejestruje wszystkie klasy publiczne zawarte w myTest.dllpliku i generuje i rejestruje bibliotekę myTest.tlbtypów , która zawiera definicje wszystkich typów publicznych zdefiniowanych w myTest.dllprogramie .

regasm myTest.dll /tlb:myTest.tlb

Zobacz też