Installutil.exe (Narzędzie instalatora)
Narzędzie Instalator to narzędzie wiersza polecenia umożliwiające instalowanie i odinstalowywanie zasobów serwera przez wykonywanie składników instalatora w określonych zestawach. To narzędzie działa w połączeniu z klasami w System.Configuration.Install przestrzeni nazw.
To narzędzie jest instalowane automatycznie z programem Visual Studio. Aby uruchomić narzędzie, użyj wiersza polecenia dla deweloperów programu Visual Studio lub programu Visual Studio Developer PowerShell.
W wierszu polecenia wpisz:
Składnia
installutil [/u[ninstall]] [options] assembly [[options] assembly] ...
Parametry
Argument | opis |
---|---|
assembly |
Nazwa pliku zestawu, w którym mają zostać wykonane składniki instalatora. Pomiń ten parametr, jeśli chcesz określić silną nazwę zestawu przy użyciu /AssemblyName opcji . |
Opcje
Opcja | Opis |
---|---|
/h[elp] — lub — /? |
Wyświetla składnię polecenia i opcje narzędzia. |
/help montaż— lub — /? montaż |
Wyświetla dodatkowe opcje rozpoznawane przez poszczególne instalatory w określonym zestawie, wraz ze składnią poleceń i opcjami programu InstallUtil.exe. Ta opcja dodaje tekst zwracany przez właściwość każdego składnika Installer.HelpText instalatora do tekstu pomocy InstallUtil.exe. Jeśli na przykład ServiceProcessInstaller.Account parametr to User , /username dostępne są opcje i /password . |
/AssemblyName "assemblyName",,Version=major.minor.build.revision ,Culture=locale ,PublicKeyToken=publicKeyToken" |
Określa silną nazwę zestawu, która musi zostać zarejestrowana w globalnej pamięci podręcznej zestawów. Nazwa zestawu musi być w pełni kwalifikowaną nazwą zawierającą wersję, kulturę i token klucza publicznego zestawu. W pełni kwalifikowana nazwa musi być ujęte w cudzysłowy. Na przykład w pełni kwalifikowaną nazwą zestawu jest "mójZestaw, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0". |
/InstallStateDir=[ directoryName ] |
Określa katalog pliku InstallState, który zawiera dane służące do odinstalowywania zestawu. Domyślnie, jest to katalog, w którym znajduje się zestaw. |
/LogFile= [nazwa pliku] |
Określa nazwę pliku dziennika, w którym jest rejestrowany postęp instalacji. Domyślnie, jeśli /LogFile opcja zostanie pominięta, plik dziennika o nazwie assemblyname. Plik InstallLog jest tworzony. Jeśli nazwa pliku zostanie pominięta, nie zostanie wygenerowany żaden plik dziennika. |
/LogToConsole ={true |false } |
Jeśli true wartość , wyświetla dane wyjściowe w konsoli programu . Jeśli false (wartość domyślna), pomija dane wyjściowe w konsoli programu . |
/ShowCallStack |
Przesyła stos wywołań do pliku dziennika, jeśli w jakimkolwiek punkcie instalacji wystąpi wyjątek. |
/u [ninstall ] |
Odinstalowuje określone zestawy. W przeciwieństwie do innych opcji, dotyczy wszystkich zestawów niezależnie od tego, /u gdzie opcja jest wyświetlana w wierszu polecenia. |
Dodatkowe opcje instalatora
Poszczególne instalatory używane w zestawie mogą rozpoznawać opcje oprócz tych wymienionych w sekcji Opcje . Aby dowiedzieć się więcej o tych opcjach, uruchom InstallUtil.exe ze ścieżkami zestawów w wierszu polecenia wraz z opcją /?
lub /help
. Aby określić te opcje, należy umieścić je w wierszu polecenia wraz z opcjami rozpoznawanymi przez program InstallUtil.exe.
Uwaga
Tekst pomocy dotyczący opcji obsługiwanych przez poszczególne składniki instalatora jest zwracany przez Installer.HelpText właściwość . Poszczególne opcje wprowadzone w wierszu polecenia są dostępne programowo z Installer.Context właściwości .
Wszystkie opcje i parametry wiersza polecenia są zapisywane w pliku dziennika instalacji. Jeśli jednak używasz parametru /Password
rozpoznawanego przez niektóre składniki instalatora, informacje o haśle są zastępowane przez osiem gwiazdki (*) i nie będą wyświetlane w pliku dziennika.
Ważne
W niektórych przypadkach parametry przekazywane do instalatora mogą zawierać informacje poufne lub dane osobowe, które domyślnie są zapisywane w pliku dziennika w postaci czystego tekstu. Aby zapobiec temu zachowaniu, możesz pominąć plik dziennika, określając /LogFile=
(bez argumentu nazwy pliku ) w wierszu polecenia.
Uwagi
Aplikacje .NET Framework składają się z tradycyjnych plików programów i skojarzonych zasobów, takich jak kolejki komunikatów, dzienniki zdarzeń i liczniki wydajności, które należy utworzyć podczas wdrażania aplikacji. Można użyć składników instalatora zestawu, aby utworzyć te zasoby podczas instalowania aplikacji oraz aby je usunąć podczas odinstalowywania aplikacji. Program Installutil.exe wykrywa i wykonuje te składniki instalatora.
W jednym wierszu polecenia można określić wiele zestawów. Każda opcja występująca przed nazwą zestawu jest stosowana do instalacji tego zestawu. /u
Z wyjątkiem opcji i /AssemblyName
opcje są skumulowane, ale można je zastąpić. Oznacza to, że opcje określone dla jednego zestawu są stosowane do wszystkich kolejnych zestawów, chyba że dana opcja zostanie określona z nową wartością.
Uruchomienie programu Installutil.exe dla zestawu bez określenia żadnych opcji spowoduje umieszczenie w katalogu tego zestawu następujących trzech plików:
- InstallUtil.InstallLog — zawiera ogólny opis postępu instalacji.
- nazwa_zestawu. InstallLog — zawiera informacje specyficzne dla fazy zatwierdzania procesu instalacji. Aby uzyskać więcej informacji na temat fazy zatwierdzania, zobacz metodę Commit .
- nazwa_zestawu. InstallState — zawiera dane używane do odinstalowania zestawu.
Installutil.exe używa odbicia w celu sprawdzenia określonych zestawów i znalezienia System.ComponentModel.RunInstallerAttribute wszystkich Installer typów, które mają atrybut ustawiony na true
. Następnie narzędzie wykonuje metodę Installer.Install lub Installer.Uninstall na każdym wystąpieniu Installer typu. Program Installutil.exe wykonuje instalację w sposób transakcyjny, a więc niepowodzenie instalacji dowolnego zestawu powoduje wycofanie instalacji wszystkich innych zestawów. Odinstalowanie nie jest transakcyjne.
Program Installutil.exe nie może instalować ani odinstalowywać zestawów podpisywanych z opóźnieniem, ale może instalować i odinstalowywać zestawy o silnych nazwach.
32-bitowa wersja środowiska uruchomieniowego języka wspólnego (CLR) jest dostarczana tylko z 32-bitową wersją narzędzia Instalatora, ale 64-bitowa wersja środowiska CLR jest dostarczana zarówno z 32-bitową, jak i 64-bitową wersją narzędzia Instalatora. W przypadku korzystania z 64-bitowego środowiska CLR użyj 32-bitowego narzędzia Instalatora, aby zainstalować zestawy 32-bitowe oraz 64-bitowe narzędzie Instalatora w celu zainstalowania zestawów 64-bitowych i typowych zestawów języka pośredniego (CIL). Obie wersje narzędzia instalatora działają tak samo.
Nie można użyć Installutil.exe do wdrożenia usługi systemu Windows utworzonej przy użyciu języka C++, ponieważ Installutil.exe nie rozpoznaje osadzonego kodu natywnego utworzonego przez kompilator języka C++. Jeśli spróbujesz wdrożyć usługę systemu Windows w języku C++ z Installutil.exe, zostanie zgłoszony wyjątek, taki jak BadImageFormatException . Aby wykonać taki scenariusz, należy przenieść kod usługi do modułu języka C++, a następnie napisać obiekt instalatora w języku C# lub Visual Basic.
Przykłady
Poniższe polecenie wyświetla opis składni poleceń oraz opcje programu InstallUtil.exe.
installutil /?
Poniższe polecenie wyświetla opis składni poleceń oraz opcje programu InstallUtil.exe. Wyświetla również opis i listę opcji obsługiwanych przez składniki instalatora, myAssembly.exe
jeśli tekst pomocy został przypisany do właściwości instalatora Installer.HelpText .
installutil /? myAssembly.exe
Następujące polecenie wykonuje składniki instalatora w zestawie myAssembly.exe
.
installutil myAssembly.exe
Następujące polecenie wykonuje składniki instalatora w zestawie przy użyciu przełącznika /AssemblyName
i w pełni kwalifikowanej nazwy.
installutil /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
Poniższe polecenie wykonuje składniki instalatora w zestawie określonym przez nazwę pliku oraz w zestawie określonym przez silną nazwę. Należy pamiętać, że wszystkie zestawy określone przez nazwę pliku muszą poprzedzać zestawy określone przez silną nazwę w wierszu polecenia, ponieważ /AssemblyName
nie można zastąpić tej opcji.
installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"
Następujące polecenie wykonuje składniki odinstalowywania w zestawie myAssembly.exe
.
installutil /u myAssembly.exe
Następujące polecenie wykonuje składniki odinstalowywania w zestawach myAssembly1.exe
i myAssembly2.exe
.
installutil myAssembly1.exe /u myAssembly2.exe
Ponieważ pozycja /u
opcji w wierszu polecenia nie jest ważna, jest to równoważne następującemu poleceniu.
installutil /u myAssembly1.exe myAssembly2.exe
Następujące polecenie wykonuje instalatory w zestawie myAssembly.exe
i określa, że informacje o postępie zostaną zapisane w pliku myLog.InstallLog
.
installutil /LogFile=myLog.InstallLog myAssembly.exe
Następujące polecenie wykonuje instalatory w zestawie myAssembly.exe
, określa, że informacje o postępie powinny być zapisywane w myLog.InstallLog
pliku i używa niestandardowej /reg
opcji instalatora, aby określić, że aktualizacje powinny być wprowadzane do rejestru systemowego.
installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe
Następujące polecenie wykonuje instalatory w zestawie myAssembly.exe
, używa niestandardowej /email
opcji instalatora, aby określić adres e-mail użytkownika i pomija dane wyjściowe do pliku dziennika.
installutil /LogFile= /email=admin@mycompany.com myAssembly.exe
Następujące polecenie zapisuje postęp instalacji dla myAssembly.exe
myLog.InstallLog
elementu w pliku i zapisuje postęp dla myTestAssembly.exe
elementu .myTestLog.InstallLog
installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe