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.
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 rejestrowany w globalnej pamięci podręcznej zestawów. Zdecydowanie zaleca się, aby argument assemblyFile określony z /codebase opcją był zestawem o silnej nazwie. |
/registered |
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. Należy użyć z opcją /regfile . |
/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. |
/verbose |
Określa tryb pełny; Wyświetla listę wszystkich zestawów, dla których należy wygenerować bibliotekę typów, gdy jest określona 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
elementu i /t: outfile.tlb
jest odpowiednikiem /tlb: outfile.tlb
elementu .
Uwagi
Możesz użyć /regfile
opcji , aby 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 TypeLibID
ani InterfaceID
wpisów.
Po określeniu /tlb
opcji 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 udostępnić informacje o typie do narzędzi programistycznych, takich jak Visual Studio. Nie używaj /tlb
opcji, 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. /tlb
Użycie opcji 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 /tlb
opcji rejestrowania biblioteki typów, możesz użyć /tlb
opcji z /unregister
opcją wyrejestrowania biblioteki 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. Przy 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 je było aktywować z dowolnego klienta COM. Jeżeli zestaw będzie aktywowany tylko przez jedną aplikację, należy go umieścić w katalogu tej aplikacji. /codebase
Użycie tej opcji jest alternatywą dla użycia 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 podczas sondowania, /codebase
opcja załaduje zestaw w kontekście obciążenia, który zawiera dodatkowe zagadnienia opisane w temacie Assembly.LoadFrom.
Przykłady
Następujące polecenie rejestruje wszystkie klasy publiczne zawarte w pliku myTest.dll
.
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.dll
pliku i generuje i rejestruje bibliotekę myTest.tlb
typów , która zawiera definicje wszystkich typów publicznych zdefiniowanych w programie myTest.dll
.
regasm myTest.dll /tlb:myTest.tlb