<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 FileCheck
bestimmt 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.