Freigeben über


<InstallChecks>-Element (Bootstrapper)

Das InstallChecks-Element unterstützt das Starten einer Vielzahl von Tests auf dem lokalen Computer, um sicherzustellen, dass alle entsprechenden Voraussetzungen für eine Anwendung installiert wurden.

Syntax

<InstallChecks>
    <AssemblyCheck
        Property
        Name
        PublicKeyToken
        Version
        Language
        ProcessorArchitecture
    />
    <RegistryCheck
        Property
        Key
        Value
    />
    <ExternalCheck
        PackageFile
        Property
        Arguments
    />
    <FileCheck
        Property
        FileName
        SearchPath
        SpecialFolder
        SearchDepth
    />
    <MsiProductCheck
        Property
        Product
        Feature
    />
    <RegistryFileCheck
        Property
        Key
        Value
        FileName
        SearchDepth
    />
</InstallChecks>

AssemblyCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von AssemblyCheck stellt der Bootstrapper sicher, dass die durch das Element identifizierte Assembly im globalen Assemblycache (GAC) vorhanden ist. Sie enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
Name Erforderlich. Der vollqualifizierte Name der zu überprüfenden Assembly.
PublicKeyToken Erforderlich. Die abgekürzte Form des öffentlichen Schlüssels, der dieser Assembly mit starkem Namen zugeordnet ist. Alle im GAC gespeicherten Assemblys müssen einen Namen, eine Version und einen öffentlichen Schlüssel aufweisen.
Version Erforderlich. Die Version der Assembly.

Die Versionsnummer hat das Format <Hauptversion>.<Nebenversion>.<Buildversion>.<Revisionsversion>.
Language Optional. Die Sprache einer lokalisierten Assembly. Der Standardwert ist neutral.
ProcessorArchitecture Optional. Der Computerprozessor, der das Ziel dieser Installation ist. Der Standardwert ist msil.

ExternalCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von ExternalCheck führt der Bootstrapper das benannte externe Programm in einem separaten Prozess aus und speichert seinen Exitcode in der von Property angegebenen Eigenschaft. ExternalCheck ist nützlich, um komplexe Abhängigkeitsprüfungen zu implementieren, oder wenn die einzige Möglichkeit, das Vorhandensein einer Komponente zu überprüfen, darin besteht, sie zu instanziieren.

ExternalCheck enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
PackageFile Erforderlich. Das auszuführende externe Programm. Das Programm muss Teil des Setupdistributionspakets sein.
Arguments Optional. Stellt Befehlszeilenargumente für die durch PackageFile benannte ausführbare Datei bereit.

FileCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von FileCheckbestimmt der Bootstrapper, ob die benannte Datei vorhanden ist, und gibt die Versionsnummer der Datei zurück. Wenn die Datei keine Versionsnummer hat, legt der Bootstrapper die durch Property benannte Eigenschaft auf 0 fest. Wenn die Datei nicht vorhanden ist, wird Property auf keinen Wert festgelegt.

FileCheck enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
FileName Erforderlich. Der Name der Datei, nach der gesucht werden soll.
SearchPath Erforderlich. Der Datenträger oder Ordner, auf bzw. in dem nach der Datei gesucht werden soll. Dies muss ein relativer Pfad sein, wenn SpecialFolder zugewiesen ist. Andernfalls muss es sich um einen absoluten Pfad handeln.
SpecialFolder Optional. Ein Ordner, der eine besondere Bedeutung für Windows oder für ClickOnce hat. Standardmäßig wird SearchPath als absoluter Pfad interpretiert. Gültige Werte sind:

AppDataFolder. Der Anwendungsdatenordner für diese ClickOnce-Anwendung. Er ist spezifisch für den aktuellen Benutzer.

CommonAppDataFolder Der von allen Benutzern verwendete Anwendungsdatenordner.

CommonFilesFolder Der Ordner „Common Files“ für den aktuellen Benutzer.

LocalDataAppFolder Der Datenordner für Nicht-Roaminganwendungen.

ProgramFilesFolder Der Standardordner „Programme“ für 32-Bit-Anwendungen.

StartUpFolder Der Ordner, der alle beim Systemstart gestarteten Anwendungen enthält.

SystemFolder Der Ordner, der 32-Bit-System-DLLs enthält.

WindowsFolder Der Ordner, der die Windows-Systeminstallation enthält.

WindowsVolume. Das Laufwerk oder die Partition, das bzw. die die Windows-Systeminstallation enthält.
SearchDepth Optional. Die Tiefe, bis zu der Unterordner nach der benannten Datei durchsucht werden sollen. Die Suche erfolgt zuerst in der Tiefe. Der Standardwert ist 0, wodurch die Suche auf den Ordner der obersten Ebene beschränkt wird, der von SpecialFolder und SearchPath angegeben wird.

MsiProductCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von MsiProductChecküberprüft der Bootstrapper, ob die angegebene Microsoft Windows Installer-Installation bis zu ihrem Abschluss ausgeführt wurde. Der Eigenschaftswert wird abhängig vom Zustand des installierten Produkts festgelegt. Ein positiver Wert gibt an, dass das Produkt installiert ist, 0 oder -1 gibt an, dass es nicht installiert ist. (Weitere Informationen finden Sie in der MsiQueryFeatureState-Funktion des Windows Installer SDK.) Wenn Windows Installer nicht auf dem Computer installiert ist, wird Property nicht festgelegt.

MsiProductCheck enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
Product Erforderlich. Die GUID für das installierte Produkt.
Feature Optional. Die GUID für ein bestimmtes Feature der installierten Anwendung.

RegistryCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von RegistryCheck überprüft der Bootstrapper, ob der angegebene Registrierungsschlüssel vorhanden ist bzw. ob er den angegebenen Wert aufweist.

RegistryCheck enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
Key Erforderlich. Der Name des Registrierungsschlüssels.
Value Optional. Der Name des abzurufenden Registrierungswerts. Standardmäßig wird der Text des Standardwerts zurückgegeben. Value muss vom Typ String oder DWORD sein.

RegistryFileCheck

Dieses Element ist ein optionales untergeordnetes Element von InstallChecks. Für jede Instanz von RegistryFileCheck ruft der Bootstrapper die Version der angegebenen Datei ab. Dabei versucht er zunächst, den Pfad zur Datei aus dem angegebenen Registrierungsschlüssel abzurufen. Dies ist besonders nützlich, wenn Sie eine Datei in einem Verzeichnis suchen möchten, das als Wert in der Registrierung angegeben ist.

RegistryFileCheck enthält keine Elemente und weist die folgenden Attribute auf.

Attribut BESCHREIBUNG
Property Erforderlich. Der Name der Eigenschaft zum Speichern des Ergebnisses. Auf diese Eigenschaft kann aus einem Test unter dem InstallConditions-Element verwiesen werden, das ein untergeordnetes Element des Command-Elements ist. Weitere Informationen finden Sie unter <Commands>-Element.
Key Erforderlich. Der Name des Registrierungsschlüssels. Sein Wert wird als Pfad zu einer Datei interpretiert, es sei denn, das File-Attribut ist festgelegt. Wenn dieser Schlüssel nicht vorhanden ist, wird Property nicht festgelegt.
Value Optional. Der Name des abzurufenden Registrierungswerts. Standardmäßig wird der Text des Standardwerts zurückgegeben. Value muss eine Zeichenfolge sein.
FileName Optional. Der Name einer Datei. Wenn angegeben, wird der vom Registrierungsschlüssel abgerufene Wert als Verzeichnispfad angenommen, und dieser Name wird an ihn angefügt. Wenn nicht angegeben, wird angenommen, dass der von der Registrierung zurückgegebene Wert der vollständige Pfad zu einer Datei ist.
SearchDepth Optional. Die Tiefe, bis zu der Unterordner nach der benannten Datei durchsucht werden sollen. Die Suche erfolgt zuerst in der Tiefe. Der Standardwert ist 0, wodurch die Suche auf den Ordner der obersten Ebene beschränkt wird, der vom Wert des Registrierungsschlüssels angegeben wird.

Hinweise

Die Elemente unter InstallChecks definieren zwar die auszuführenden Tests, führen sie aber nicht aus. Zum Ausführen der Tests müssen Sie Command-Elemente unter dem Commands-Element erstellen.

Beispiel

Im folgenden Codebeispiel wird das InstallChecks-Element gezeigt, wie es in der Produktdatei für .NET Framework verwendet wird.

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

Wenn InstallChecks ausgewertet wird, werden Eigenschaften generiert. Die Eigenschaften werden dann von InstallConditions verwendet, um zu bestimmen, ob ein Paket installiert bzw. umgangen werden oder fehlschlagen soll. In der folgenden Tabelle werden die InstallConditions aufgelistet:

Bedingung BESCHREIBUNG
FailIf Wenn eine FailIf-Bedingung in TRUE ausgewertet wird, schlägt das Paket fehl. Die restlichen Bedingungen werden nicht ausgewertet.
BypassIf Wenn eine BypassIf-Bedingung in TRUE ausgewertet wird, wird das Paket umgangen. Die restlichen Bedingungen werden nicht ausgewertet.

Vordefinierte Eigenschaften

In der folgenden Tabelle werden die BypassIf- und FailIf-Elemente aufgeführt:

Eigenschaft Notizen Mögliche Werte
Version9X Versionsnummer eines Windows 9X-Betriebssystems. 4.10 = Windows 98
VersionNT Versionsnummer eines Windows-Betriebssystems. Major.Minor.ServicePack
VersionNT64 Versionsnummer eines auf 64-Bit-Windows-Betriebssystems. Major.Minor.ServicePack.
VersionMsi Versionsnummer des Windows Installer-Diensts. 2.0 = Windows Installer 2.0
AdminUser Gibt an, ob ein Benutzer über Administratorrechte für ein auf Windows NT basierendes Betriebssystem verfügt. 0 = Keine Administratorrechte

1 = Administratorrechte

Um beispielsweise die Installation auf einem Computer mit Windows 8 zu blockieren, verwenden Sie Code wie den folgenden:

    <!-- Block install on Windows 8 -->
    <FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>

Verwenden Sie das BeforeInstallChecks-Attribut, um die Ausführung von Installationsprüfungen zu überspringen, wenn eine FailIf- oder BypassIf-Bedingung erfüllt ist. Beispiel:

    <!-- Block install and do not evaluate install checks if user does not have admin privileges -->
    <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" BeforeInstallChecks="true"/>

Hinweis

Das BeforeInstallChecks-Attribut wird ab dem Release Visual Studio 2019 Update 9.

Weitere Informationen