Installutil.exe (Installer-Tool)

Das Installationsprogrammtool ist ein Befehlszeilen-Hilfsprogramm, mit dem Sie Serverressourcen installieren und deinstallieren können, indem Sie die Komponenten des Installationsprogramms in angegebenen Assemblys ausführen. Dieses Tool funktioniert in Verbindung mit Klassen im System.Configuration.Install-Namespace.

Dieses Tool wird automatisch mit Visual Studio installiert. Um das Tool auszuführen, verwenden Sie die Developer-Eingabeaufforderung von Visual Studio oder Visual Studio Developer PowerShell.

Geben Sie an der Eingabeaufforderung Folgendes ein:

Syntax

installutil [/u[ninstall]] [options] assembly [[options] assembly] ...

Parameter

Argument BESCHREIBUNG
assembly Der Dateiname der Assembly, in der die Installationsprogrammkomponenten ausgeführt werden sollen. Lassen Sie diesen Parameter aus, wenn Sie den starken Namen der Assembly angeben möchten, indem Sie die /AssemblyName-Option verwenden.

Tastatur

Option Beschreibung
/h[elp]

- oder -

/?
Zeigt Befehlssyntax und Optionen für das Tool an.
/helpassembly

Oder

/?assembly
Zeigt zusätzliche Optionen, die von einzelnen Installationsprogrammen innerhalb der angegebenen Assembly erkannt werden, zusammen mit der Befehlssyntax und Optionen für "InstallUtil.exe" an. Mit dieser Option wird dem Hilfetext von "InstallUtil.exe" der von der Installer.HelpText-Eigenschaft aller Installationsprogrammkomponenten zurückgegebene Text hinzugefügt. Wenn beispielsweise ServiceProcessInstaller.AccountUser ist, sind die Optionen /username und /password verfügbar.
/AssemblyName "assemblyName

,Version=major.minor.build.revision

,Culture=locale

,PublicKeyToken=publicKeyToken"
Gibt den starken Namen einer Assembly an, die im globalen Assemblycache registriert werden muss. Der Assemblyname muss mit der Version, Kultur und dem öffentlichen Schlüsseltoken der Assembly vollständig qualifiziert werden. Der vollqualifizierte Name muss in Anführungszeichen stehen.

"myAssembly, Culture=neutral, PublicKeyToken=0038abc9deabfle5, Version=4.0.0.0" ist beispielsweise ein vollqualifizierter Assemblyname.
/InstallStateDir=[directoryName] Gibt das Verzeichnis der INSTALLSTATE-Datei an, die die Daten enthält, die verwendet werden, um die Assembly zu deinstallieren. Das Standardverzeichnis ist das Verzeichnis, das die Assembly enthält.
/LogFile=[filename] Gibt den Namen der Protokolldatei an, in der der Installationsverlauf aufgezeichnet wird. Wenn die Option /LogFile fehlt, wird standardmäßig die Protokolldatei „assemblyname.InstallLog“ erstellt. Wenn filename nicht angegeben wird, wird keine Protokolldatei generiert.
/LogToConsole={true|false} Wenn der Wert true ist, wird die Ausgabe in der Konsole angezeigt. Ist der Wert false (Standardeinstellung), wird die Ausgabe in der Konsole unterdrückt.
/ShowCallStack Gibt die Aufrufliste in der Protokolldatei aus, wenn im Verlauf der Installation eine Ausnahme auftritt.
/u[ninstall] Deinstalliert die angegebenen Assemblys. Im Gegensatz zu den anderen Optionen wird /u auf alle Assemblys angewendet, wobei es unerheblich ist, an welcher Stelle in der Befehlszeile sich die Option befindet.

Zusätzliche Installationsoptionen

Einzelne Installationsprogramme, die in einer Assembly verwendet werden, erkennen möglicherweise Optionen zusätzlich zu den im Abschnitt Optionen aufgeführten. Um Informationen über diese Optionen zu erhalten, führen Sie "InstallUtil.exe" mit den Pfaden der Assemblys in der Befehlszeile zusammen mit der Option /? oder /help aus. Um diese Optionen anzugeben, geben Sie sie in der Befehlszeile zusammen mit den Optionen an, die von "InstallUtil.exe" erkannt werden.

Hinweis

Hilfetext für die Optionen, die von einzelnen Installationsprogrammkomponenten unterstützt werden, wird von der Installer.HelpText-Eigenschaft zurückgegeben. Auf die einzelnen Optionen, die in der Befehlszeile eingegeben wurden, kann über die Installer.Context-Eigenschaft programmgesteuert zugegriffen werden.

Alle Optionen und Befehlszeilenparameter werden in die Installationsprotokolldatei geschrieben. Wenn Sie jedoch den Parameter verwenden, der /Password von einigen Installationsprogrammkomponenten erkannt wird, werden die Kennwortinformationen durch acht Sternchen (*) ersetzt und werden nicht in der Protokolldatei angezeigt.

Wichtig

In einigen Fällen können an das Installationsprogramm übergebene Parameter vertrauliche oder personenbezogene Informationen enthalten, die standardmäßig in eine Nur-Text-Protokolldatei geschrieben werden. Um dieses Verhalten zu verhindern, können Sie die Protokolldatei unterdrücken, indem Sie in der Befehlszeile (ohne Dateinamenargument) angeben /LogFile= .

Hinweise

.NET Framework-Anwendungen bestehen aus herkömmlichen Programmdateien und zugehörigen Ressourcen wie Nachrichtenwarteschlangen, Ereignisprotokollen und Leistungsindikatoren, die beim Bereitstellen der Anwendung erstellt werden müssen. Sie können die Installationsprogrammkomponenten einer Assembly verwenden, um diese Ressourcen beim Installieren der Anwendung zu erstellen und beim Deinstallieren der Anwendung zu entfernen. "Installutil.exe" erkennt diese Installationsprogrammkomponenten und führt sie aus.

Sie können mehrere Assemblys in einer Befehlszeile angeben. Jede Option, die vor einem Assemblynamen steht, bezieht sich auf die Installation dieser Assembly. Mit Ausnahme von /u und /AssemblyName sind Optionen kumulativ, können jedoch überschrieben werden. Das heißt, dass für eine Assembly angegebene Optionen auf alle nachfolgenden Assemblys angewendet werden, es sei denn, die Option wird mit einem neuen Wert angegeben.

Wenn Sie "Installutil.exe" ohne Angabe von Optionen für eine Assembly ausführen, werden die folgenden drei Dateien im Verzeichnis der Assembly platziert:

  • "InstallUtil.InstallLog" - Enthält eine allgemeine Beschreibung des Installationsverlaufs.
  • assemblyname.InstallLog: Enthält spezielle Informationen, die sich auf die Commitphase des Installationsverlaufs beziehen. Weitere Informationen zur Commitphase finden Sie in den Informationen zur Commit-Methode.
  • assemblyname.InstallState: Enthält Daten für die Deinstallation der Assembly.

"Installutil.exe" verwendet Reflektion, um die angegebenen Assemblys zu überprüfen und alle Installer-Typen zu suchen, bei denen das System.ComponentModel.RunInstallerAttribute-Attribut auf true festgelegt wurde. Anschließend führt das Tool entweder die Installer.Install- oder die Installer.Uninstall-Methode für jede Instanz des Installer-Typs aus. "Installutil.exe" führt die Installation in Form einer Transaktion durch. D. h., wenn die Installation einer Assembly fehlschlägt, wird die Installation aller anderen Assemblys zurückgenommen. Die Deinstallation wird nicht als Transaktion durchgeführt.

Verzögert signierte Assemblys können mit "Installutil.exe" weder installiert noch deinstalliert werden, jedoch kann das Tool Assemblys mit starkem Namen installieren und deinstallieren.

Die 32-Bit-Version der Common Language Runtime (CLR) enthält nur die 32-Bit-Version des Installer-Tools, aber die 64-Bit-Version der CLR enthält sowohl 32-Bit- als auch 64-Bit-Versionen des Installer-Tools. Verwenden Sie bei Verwendung der 64-Bit-CLR das 32-Bit-Installationstool zum Installieren von 32-Bit-Assemblys und das 64-Bit-Installationstool zum Installieren von 64-Bit- und Common Intermediate Language (CIL)-Assemblys. Beide Versionen des Installationstools verhalten sich gleich.

Sie können Installutil.exe nicht verwenden, um einen Windows-Dienst bereitzustellen, der mit C++ erstellt wurde, da Installutil.exe den vom C++-Compiler erstellten eingebetteten nativen Code nicht erkennt. Wenn Sie versuchen, einen mit C++ erstellten Windows-Dienst mit "Installutil.exe" bereitzustellen, wird eine Ausnahme, z. B. BadImageFormatException, ausgelöst. Um mit diesem Szenario zu arbeiten, verschieben Sie den Dienstknoten in ein C++-Modul, und schreiben Sie dann das Installationsprogrammobjekt in C# oder Visual Basic.

Beispiele

Mit dem folgenden Befehl werden eine Beschreibung der Befehlssyntax und Optionen für "InstallUtil.exe" angezeigt.

installutil /?

Mit dem folgenden Befehl werden eine Beschreibung der Befehlssyntax und Optionen für "InstallUtil.exe" angezeigt. Außerdem wird eine Beschreibung und eine Liste der von den Installationsprogrammkomponenten unterstützten Optionen in myAssembly.exe angezeigt, wenn Hilfetext der Installer.HelpText-Eigenschaft des Installationsprogramms zugewiesen wurde.

installutil /? myAssembly.exe

Der folgende Befehl führt die Installationsprogrammkomponenten in der Assembly myAssembly.exe aus.

installutil myAssembly.exe

Der folgende Befehl führt die Installationsprogrammkomponenten in einer Assembly mithilfe des /AssemblyName-Schalters und eines vollqualifizierten Namens aus.

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

Mit dem folgenden Befehl werden die Installationsprogrammkomponenten in einer Assembly, die vom Dateinamen angegeben wird, und in einer Assembly, die mit einem starken Namen angegeben wird, ausgeführt. Beachten Sie, dass alle mit Dateinamen angegebenen Assemblys vor Assemblys stehen müssen, die mit starkem Namen in der Befehlszeile angegeben werden, da die /AssemblyName-Option nicht überschrieben werden kann.

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

Der folgende Befehl führt die Komponenten des Deinstallationsprogramms in der Assembly myAssembly.exe aus.

installutil /u myAssembly.exe

Der folgende Befehl führt die Komponenten des Deinstallationsprogramms in den Assemblys myAssembly1.exe und myAssembly2.exe aus.

installutil myAssembly1.exe /u myAssembly2.exe

Da die Position der /u-Option in der Befehlszeile nicht wichtig ist, entspricht diese dem folgenden Befehl.

installutil /u myAssembly1.exe myAssembly2.exe

Der folgende Befehl führt die Installationsprogramme in der Assembly myAssembly.exe aus und gibt an, dass Verlaufsinformationen in myLog.InstallLog geschrieben werden.

installutil /LogFile=myLog.InstallLog myAssembly.exe

Der folgende Befehl führt die Installationsprogramme in der Assembly myAssembly.exe aus, gibt an, dass Statusinformationen in myLog.InstallLog geschrieben werden sollen, und verwendet die benutzerdefinierte /reg-Option des Installationsprogramms, um anzugeben, dass Updates in der Systemregistrierung vorgenommen werden sollen.

installutil /LogFile=myLog.InstallLog /reg=true myAssembly.exe

Der folgende Befehl führt die Installationsprogramme in der Assembly myAssembly.exe aus, verwendet die benutzerdefinierte /email-Option des Installationsprogramms zur Angabe der E-Mail-Adresse des Benutzers und unterdrückt die Ausgabe in die Protokolldatei.

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

Der folgende Befehl schreibt den Installationsverlauf für myAssembly.exe in myLog.InstallLog und den Verlauf für myTestAssembly.exe in myTestLog.InstallLog.

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

Siehe auch