Udostępnij za pośrednictwem


<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, , , ValueLessThanValueLessThanOrEqualToVersionLessThanOrEqualToValueGreaterThanOrEqualToVersionNotEqualToValueExistsVersionEqualToVersionGreaterThanVersionGreaterThanOrEqualToVersionLessThanValueGreaterThanValueNotExists
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, , , ValueLessThanValueLessThanOrEqualToVersionLessThanOrEqualToValueGreaterThanOrEqualToVersionNotEqualToValueExistsVersionEqualToVersionGreaterThanVersionGreaterThanOrEqualToVersionLessThanValueGreaterThanValueNotExists
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>

Zobacz też