<InstallChecks> , element (program rozruchowy)
Element InstallChecks
obsługuje uruchamianie różnych testów względem komputera lokalnego, aby upewnić się, że zainstalowano wszystkie odpowiednie wymagania wstępne dla aplikacji.
Składnia
<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>
Sprawdzanie zestawu
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia programu program inicjujący AssemblyCheck
upewni się, że zestaw zidentyfikowany przez element istnieje w globalnej pamięci podręcznej zestawów (GAC). Nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
Name |
Wymagany. W pełni kwalifikowana nazwa zestawu do sprawdzenia. |
PublicKeyToken |
Wymagany. Skrócona forma klucza publicznego skojarzonego z tym silnie nazwanym zestawem. Wszystkie zestawy przechowywane w GAC muszą mieć nazwę, wersję i klucz publiczny. |
Version |
Wymagany. Wersja zestawu. Numer wersji ma format <wersji> głównej.<wersja pomocnicza>.<wersja kompilacji>.<wersja> poprawki. |
Language |
Opcjonalny. Język zlokalizowanego zestawu. Wartość domyślna to neutral . |
ProcessorArchitecture |
Opcjonalny. Procesor komputera przeznaczony dla tej instalacji. Wartość domyślna to msil . |
Sprawdzanie zewnętrzne
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia programu inicjuje program inicjujący ExternalCheck
wykona nazwany program zewnętrzny w osobnym procesie i zapisze kod zakończenia we właściwości wskazanej przez Property
. ExternalCheck
jest przydatna do implementowania złożonych kontroli zależności lub gdy jedynym sposobem sprawdzenia istnienia składnika jest utworzenie wystąpienia.
ExternalCheck
nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
PackageFile |
Wymagany. Program zewnętrzny do wykonania. Program musi być częścią pakietu dystrybucji instalatora. |
Arguments |
Opcjonalny. Dostarcza argumenty wiersza polecenia do pliku wykonywalnego o nazwie .PackageFile |
Sprawdzanie pliku
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia FileCheck
programu bootstrapper określi, czy nazwany plik istnieje, i zwróci numer wersji pliku. Jeśli plik nie ma numeru wersji, program inicjująco ustawia właściwość o nazwie Property
na 0. Jeśli plik nie istnieje, Property
nie jest ustawiona na żadną wartość.
FileCheck
nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
FileName |
Wymagany. Nazwa pliku do znalezienia. |
SearchPath |
Wymagany. Dysk lub folder, w którym należy wyszukać plik. Musi to być ścieżka względna, jeśli SpecialFolder jest przypisana; w przeciwnym razie musi być ścieżką bezwzględną. |
SpecialFolder |
Opcjonalny. Folder o specjalnym znaczeniu dla systemu Windows lub ClickOnce. Wartością domyślną jest interpretowanie SearchPath jako ścieżki bezwzględnej. Prawidłowe wartości obejmują następujące wartości:AppDataFolder . Folder danych aplikacji dla tej aplikacji ClickOnce; specyficzne dla bieżącego użytkownika.CommonAppDataFolder . Folder danych aplikacji używany przez wszystkich użytkowników.CommonFilesFolder . Folder Common Files dla bieżącego użytkownika.LocalDataAppFolder . Folder danych dla aplikacji nienależących do roamingu.ProgramFilesFolder . Standardowy folder Program Files dla aplikacji 32-bitowych.StartUpFolder . Folder zawierający wszystkie aplikacje uruchomione podczas uruchamiania systemu.SystemFolder . Folder zawierający 32-bitowe biblioteki DLL systemu.WindowsFolder . Folder zawierający instalację systemu Windows.WindowsVolume . Dysk lub partycja zawierająca instalację systemu Windows. |
SearchDepth |
Opcjonalny. Głębokość wyszukiwania podfolderów dla nazwanego pliku. Wyszukiwanie jest najpierw szczegółowe. Wartość domyślna to 0, która ogranicza wyszukiwanie do folderu najwyższego poziomu określonego przez SpecialFolder i SearchPath. |
MsiProductCheck
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia programu program inicjuje MsiProductCheck
sprawdzanie, czy określona instalacja Instalatora Windows firmy Microsoft została uruchomiona do momentu ukończenia. Wartość właściwości jest ustawiana w zależności od stanu zainstalowanego produktu. Wartość dodatnia wskazuje, że produkt jest zainstalowany, 0 lub -1 wskazuje, że nie jest zainstalowany. (Aby uzyskać więcej informacji, zobacz funkcję MsiQueryFeatureState zestawu SDK Instalatora Windows). . Jeśli Instalator Windows nie jest zainstalowany na komputerze, Property
nie jest ustawiony.
MsiProductCheck
nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
Product |
Wymagany. Identyfikator GUID zainstalowanego produktu. |
Feature |
Opcjonalny. Identyfikator GUID dla określonej funkcji zainstalowanej aplikacji. |
Sprawdzanie rejestru
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia programu program inicjuje RegistryCheck
sprawdzanie, czy określony klucz rejestru istnieje, czy ma wskazaną wartość.
RegistryCheck
nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
Key |
Wymagany. Nazwa klucza rejestru. |
Value |
Opcjonalny. Nazwa wartości rejestru do pobrania. Wartość domyślna to zwracanie tekstu wartości domyślnej. Value musi być ciągiem lub dwordem. |
RegistryFileCheck
Ten element jest opcjonalnym elementem podrzędnym elementu InstallChecks
. Dla każdego wystąpienia programu program inicjujący RegistryFileCheck
pobiera wersję określonego pliku, najpierw próbując pobrać ścieżkę do pliku z określonego klucza rejestru. Jest to szczególnie przydatne, jeśli chcesz wyszukać plik w katalogu określonym jako wartość w rejestrze.
RegistryFileCheck
nie zawiera żadnych elementów i ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przechowywania wyniku. Do tej właściwości można odwoływać się z testu pod InstallConditions elementem, który jest elementem podrzędnym Command elementu. Aby uzyskać więcej informacji, zobacz <Commands> , Element. |
Key |
Wymagany. Nazwa klucza rejestru. Jego wartość jest interpretowana jako ścieżka do pliku, chyba że File atrybut jest ustawiony. Jeśli ten klucz nie istnieje, Property nie jest ustawiony. |
Value |
Opcjonalny. Nazwa wartości rejestru do pobrania. Wartość domyślna to zwracanie tekstu wartości domyślnej. Value musi być ciągiem. |
FileName |
Opcjonalny. Nazwa pliku. Jeśli zostanie określona, przyjmuje się, że wartość uzyskana z klucza rejestru jest ścieżką katalogu, a ta nazwa jest dołączana do niego. Jeśli nie zostanie określona, przyjmuje się, że wartość zwrócona z rejestru jest pełną ścieżką do pliku. |
SearchDepth |
Opcjonalny. Głębokość wyszukiwania podfolderów dla nazwanego pliku. Wyszukiwanie jest najpierw szczegółowe. Wartość domyślna to 0, która ogranicza wyszukiwanie do folderu najwyższego poziomu określonego przez wartość klucza rejestru. |
Uwagi
Chociaż elementy poniżej InstallChecks
definiują testy do uruchomienia, nie są one wykonywane. Aby wykonać testy, należy utworzyć Command
elementy pod elementem Commands
.
Przykład
Poniższy przykład kodu przedstawia InstallChecks
element używany w pliku produktu dla programu .NET Framework.
<InstallChecks>
<ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
<RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>
Installconditions
Gdy InstallChecks
są oceniane, tworzą właściwości. Właściwości są następnie używane przez InstallConditions
program w celu określenia, czy pakiet powinien być instalowany, pomijany, czy kończy się niepowodzeniem. W poniższej tabeli wymieniono element InstallConditions
:
Warunek | opis |
---|---|
FailIf |
Jeśli jakikolwiek FailIf warunek ma wartość true, pakiet zakończy się niepowodzeniem. Pozostałe warunki nie zostaną ocenione. |
BypassIf |
Jeśli jakikolwiek BypassIf warunek ma wartość true, pakiet zostanie pominięty. Pozostałe warunki nie zostaną ocenione. |
Wstępnie zdefiniowane właściwości
W poniższej tabeli wymieniono BypassIf
elementy i FailIf
:
Właściwości | Uwagi | Możliwe wartości |
---|---|---|
Version9X |
Numer wersji systemu operacyjnego Windows 9X. | 4.10 = Windows 98 |
VersionNT |
Numer wersji systemu operacyjnego Windows. | Major.Minor.ServicePack |
VersionNT64 |
Numer wersji 64-bitowego systemu operacyjnego Windows. | Major.Minor.ServicePack. |
VersionMsi |
Numer wersji usługi Instalatora Windows. | 2.0 = Instalator Windows 2.0 |
AdminUser |
Określa, czy użytkownik ma uprawnienia administratora w systemie operacyjnym Windows NT. | 0 = brak uprawnień administratora 1 = uprawnienia administratora |
Aby na przykład zablokować instalację na komputerze z systemem Windows 8, użyj kodu, takiego jak:
<!-- Block install on Windows 8 -->
<FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>
Aby pominąć uruchamianie testów instalacji, jeśli warunek FailIf lub BypassIf jest spełniony, użyj atrybutu BeforeInstallChecks. Na przykład:
<!-- 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"/>
Uwaga
Atrybut BeforeInstallChecks
jest obsługiwany od wersji Visual Studio 2019 Update 9.