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ć to 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

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.
/helpZestawu

-lub-

/?Zestawu
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 zwrócony przez właściwość każdego składnika Installer.HelpText instalatora do tekstu pomocy InstallUtil.exe. Jeśli na przykład ServiceProcessInstaller.Account parametr ma Userwartość , dostępne /username 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. Dziennik instalacji jest tworzony. Jeśli nazwa pliku zostanie pominięta, nie jest generowany żaden plik dziennika.
/LogToConsole={true|false} Jeśli truewartość , wyświetla dane wyjściowe w konsoli programu . Jeśli false (wartość domyślna), pomija dane wyjściowe w konsoli.
/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 , który jest rozpoznawany przez niektóre składniki instalatora, informacje o haśle zostaną zastąpione 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 ) po Installutil.exe w wierszu polecenia.

Uwagi

Aplikacje programu .NET Framework składają się z tradycyjnych plików programów oraz skojarzonych zasobów, takich jak kolejki komunikatów, dzienniki zdarzeń i liczniki wydajności, które muszą zostać utworzone 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 /AssemblyNameopcje 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 wszystkich Installer typów, które mają System.ComponentModel.RunInstallerAttribute 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.

Począwszy od wersji .NET Framework 2.0, 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-bitowymi, jak i 64-bitowymi wersjami narzędzia Instalatora. Gdy jest używane 64-bitowe środowisko CLR, 32-bitowe narzędzie instalatora jest używane do instalowania zestawów 32-bitowych, a 64-bitowe narzędzie instalatora do instalowania zestawów 64-bitowych oraz zestawów języka Microsoft Intermediate Language (MSIL). Obie wersje narzędzia instalatora działają tak samo.

Za pomocą programu Installutil.exe nie można wdrażać usług systemu Windows napisanych w języku C++, ponieważ program Installutil.exe nie rozpoznaje osadzonego natywnego kodu generowanego przez kompilator 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, jeśli myAssembly.exe 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ć opcji.

installutil myAssembly.exe /AssemblyName "myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0"

Następujące polecenie wykonuje składniki dezinstalatora 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 odpowiednik następującego polecenia.

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.InstallLogprogramie 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 do określenia adresu e-mail użytkownika i pomija dane wyjściowe w pliku dziennika.

installutil /LogFile= /email=admin@mycompany.com myAssembly.exe

Następujące polecenie zapisuje postęp instalacji dla myAssembly.exemyLog.InstallLog polecenia w pliku i zapisuje postęp dla myTestAssembly.exe polecenia w pliku myTestLog.InstallLog.

installutil /LogFile=myLog.InstallLog myAssembly.exe /LogFile=myTestLog.InstallLog myTestAssembly.exe

Zobacz też