<Commands> , element (bootstrapper)
Element Commands
implementuje testy opisane przez elementy pod InstallChecks
elementem i deklaruje pakiet, który program rozruchowy ClickOnce powinien zainstalować, jeśli test zakończy się niepowodzeniem.
Składnia
<Commands
Reboot
>
<Command
PackageFile
Arguments
EstimatedInstallSeconds
EstimatedDiskBytes
EstimatedTempBytes
Log
>
<InstallConditions>
<BypassIf
Property
Compare
Value
Schedule
/>
<FailIf
Property
Compare
Value
String
Schedule
/>
</InstallConditions>
<ExitCodes>
<ExitCode
Value
Result
String
/>
</ExitCodes>
</Command>
</Commands>
Elementy i atrybuty
Element Commands
jest wymagany. Element ma następujący atrybut.
Atrybut | opis |
---|---|
Reboot |
Opcjonalny. Określa, czy system powinien zostać uruchomiony ponownie, jeśli którykolwiek z pakietów zwróci kod zakończenia ponownego uruchomienia. Poniższa lista zawiera prawidłowe wartości:Defer . Ponowne uruchomienie zostanie odroczone do czasu przyszłego.Immediate . Powoduje natychmiastowe ponowne uruchomienie, jeśli jeden z pakietów zwrócił kod zakończenia ponownego uruchomienia.None . Powoduje ignorowanie żądań ponownego uruchomienia.Wartość domyślna to Immediate . |
Polecenie
Element Command
jest elementem podrzędnym Commands
elementu . Element Commands
może zawierać co najmniej jeden Command
element. Element ma następujące atrybuty.
Atrybut | opis |
---|---|
PackageFile |
Wymagane. Nazwa pakietu do zainstalowania powinna zawierać co najmniej jeden warunek określony przez InstallConditions wartość false. Pakiet musi być zdefiniowany w tym samym pliku przy użyciu PackageFile elementu. |
Arguments |
Opcjonalny. Zestaw argumentów wiersza polecenia do przekazania do pliku pakietu. |
EstimatedInstallSeconds |
Opcjonalny. Szacowany czas w sekundach zajmie zainstalowanie pakietu. Ta wartość określa rozmiar paska postępu wyświetlanego użytkownikowi przez program inicjjący. Wartość domyślna to 0, w tym przypadku nie określono oszacowania czasu. |
EstimatedDiskBytes |
Opcjonalny. Szacowana ilość miejsca na dysku (w bajtach) zajmowanego przez pakiet po zakończeniu instalacji. Ta wartość jest używana w wymaganiach dotyczących miejsca na dysku twardym wyświetlanych użytkownikowi przez program inicjujący. Wartość domyślna to 0, w tym przypadku program uruchamiający nie wyświetla żadnych wymagań dotyczących miejsca na dysku twardym. |
EstimatedTempBytes |
Opcjonalny. Szacowana ilość miejsca na dysku tymczasowego (w bajtach) wymagana przez pakiet. |
Log |
Opcjonalny. Ścieżka do pliku dziennika generowanego przez pakiet względem katalogu głównego pakietu. |
Installconditions
Element InstallConditions
jest elementem podrzędnym Command
elementu. Każdy Command
element może mieć co najwyżej jeden InstallConditions
element. Jeśli żaden element nie InstallConditions
istnieje, pakiet określony przez Condition
będzie zawsze uruchamiany.
BypassIf
Element BypassIf
jest elementem podrzędnym InstallConditions
elementu i opisuje warunek dodatni, w którym polecenie nie powinno być wykonywane. Każdy InstallConditions
element może mieć zero lub więcej BypassIf
elementów.
BypassIf
ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przetestowania. Właściwość musi być wcześniej zdefiniowana przez element podrzędny InstallChecks elementu. Aby uzyskać więcej informacji, zobacz <InstallChecks> , element. |
Compare |
Wymagany. Typ porównania do wykonania. Poniższa lista zawiera prawidłowe wartości:ValueEqualTo , ValueNotEqualTo , , , ValueLessThan ValueLessThanOrEqualTo VersionLessThanOrEqualTo ValueGreaterThanOrEqualTo VersionNotEqualTo ValueExists VersionEqualTo VersionGreaterThan VersionGreaterThanOrEqualTo VersionLessThan ValueGreaterThan ValueNotExists |
Value |
Wymagany. Wartość do porównania z właściwością. |
Schedule |
Opcjonalny. Nazwa tagu definiującego Schedule , kiedy ta reguła ma zostać obliczona. |
FailIf
Element FailIf
jest elementem podrzędnym InstallConditions
elementu i opisuje pozytywny stan, w którym instalacja powinna zostać zatrzymana. Każdy InstallConditions
element może mieć zero lub więcej FailIf
elementów.
FailIf
ma następujące atrybuty.
Atrybut | opis |
---|---|
Property |
Wymagane. Nazwa właściwości do przetestowania. Właściwość musi być wcześniej zdefiniowana przez element podrzędny InstallChecks elementu. Aby uzyskać więcej informacji, zobacz <InstallChecks> , element. |
Compare |
Wymagany. Typ porównania do wykonania. Poniższa lista zawiera prawidłowe wartości:ValueEqualTo , ValueNotEqualTo , , , ValueLessThan ValueLessThanOrEqualTo VersionLessThanOrEqualTo ValueGreaterThanOrEqualTo VersionNotEqualTo ValueExists VersionEqualTo VersionGreaterThan VersionGreaterThanOrEqualTo VersionLessThan ValueGreaterThan ValueNotExists |
Value |
Wymagany. Wartość do porównania z właściwością. |
String |
Opcjonalny. Tekst wyświetlany użytkownikowi po niepowodzeniu. |
Schedule |
Opcjonalny. Nazwa tagu definiującego Schedule , kiedy ta reguła ma zostać obliczona. |
Kody zakończenia
Element ExitCodes
jest elementem podrzędnym Command
elementu. Element ExitCodes
zawiera co najmniej jeden ExitCode
element, który określa, co instalacja powinna zrobić w odpowiedzi na kod zakończenia z pakietu. Pod elementem Command
może znajdować się jeden opcjonalny ExitCode
element. ExitCodes
nie ma atrybutów.
Exitcode
Element ExitCode
jest elementem podrzędnym ExitCodes
elementu. Element ExitCode
określa, co powinna zrobić instalacja w odpowiedzi na kod zakończenia z pakietu. ExitCode
nie zawiera żadnych elementów podrzędnych i ma następujące atrybuty.
Atrybut | opis |
---|---|
Value |
Wymagane. Wartość kodu zakończenia, do której ma zastosowanie ten ExitCode element. |
Result |
Wymagany. Jak instalacja powinna reagować na ten kod zakończenia. Poniższa lista zawiera prawidłowe wartości:Success . Flaguje pakiet jako pomyślnie zainstalowany.SuccessReboot . Flaguje pakiet jako pomyślnie zainstalowany i instruuje system do ponownego uruchomienia.Fail . Flaguje pakiet jako niepowodzenie.FailReboot . Flaguje pakiet jako niepowodzenie i nakazuje systemowi ponowne uruchomienie. |
String |
Opcjonalny. Wartość wyświetlana użytkownikowi w odpowiedzi na ten kod zakończenia. |
FormatMessageFromSystem |
Opcjonalny. Określa, czy należy użyć komunikatu o błędzie dostarczonego przez system odpowiadającego kodowi zakończenia, czy użyć wartości podanej w pliku String . Prawidłowe wartości to true , co oznacza użycie błędu dostarczonego przez system i false , co oznacza użycie ciągu dostarczonego przez String . Wartość domyślna to false . Jeśli ta właściwość to false , ale String nie jest ustawiona, zostanie użyty błąd podany przez system. |
Przykład
Poniższy przykład kodu definiuje polecenia do instalowania programu .NET Framework 2.0.
<Commands Reboot="Immediate">
<Command PackageFile="instmsia.exe"
Arguments= ' /q /c:"msiinst /delayrebootq"'
EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIf Property="VersionNT" Compare="ValueExists"/>
BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="2.0"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="SuccessReboot"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<Command PackageFile="WindowsInstaller-KB884016-v2-x86.exe"
Arguments= '/quiet /norestart'
EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIf Property="Version9x" Compare="ValueExists"/>
<BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3"/>
<BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="3.0"/>
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<Command PackageFile="dotnetfx.exe"
Arguments=' /q:a /c:"install /q /l"'
EstimatedInstalledBytes="21000000"
EstimatedInstallSeconds="300">
<!-- These checks determine whether the package is to be installed -->
<InstallConditions>
<!-- Either of these properties indicates the .NET Framework is already installed -->
<BypassIf Property="DotNetInstalled" Compare="ValueNotEqualTo" Value="0"/>
<!-- Block install if user does not have adminpermissions -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
<!-- Block install on Windows 95 -->
<FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
<!-- Block install on Windows 8 or less -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.2" String="InvalidPlatformWinNT"/>
<!-- Block install if Internet Explorer 5.01 or later is not present -->
<FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE" />
<FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.01" String="InvalidPlatformIE" />
<!-- Block install if the operating system does not support x86 -->
<FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture" />
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="4097" Result="Fail" String="AdminRequired"/>
<ExitCode Value="4098" Result="Fail" String="WindowsInstallerComponentFailure"/>
<ExitCode Value="4099" Result="Fail" String="WindowsInstallerImproperInstall"/>
<ExitCode Value="4101" Result="Fail" String="AnotherInstanceRunning"/>
<ExitCode Value="4102" Result="Fail" String="OpenDatabaseFailure"/>
<ExitCode Value="4113" Result="Fail" String="BetaNDPFailure"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>