Condividi tramite


<Elemento Commands> (programma di avvio automatico)

L'elemento Commands implementa i test descritti dagli elementi sottostanti l'elemento InstallChecks e dichiara quale pacchetto deve essere installato dal programma di avvio automatico ClickOnce in caso di esito negativo del test.

Sintassi

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

Elementi e attributi

L'elemento Commands è obbligatorio. L'elemento presenta l'attributo seguente:

Attributo Descrizione
Reboot Facoltativo. Determina se il sistema deve essere riavviato se uno dei pacchetti restituisce un codice di uscita di riavvio. L'elenco seguente mostra i valori validi:

Defer. Il riavvio viene posticipato fino a un certo periodo di tempo futuro.

Immediate. Determina un riavvio immediato se uno dei pacchetti ha restituito un codice di uscita di riavvio.

None. Fa sì che le richieste di riavvio vengano ignorate.

Il valore predefinito è Immediate.

Comando

L'elemento Command è un elemento figlio dell'elemento Commands. Un Commands elemento può avere uno o più Command elementi. L'elemento presenta gli attributi seguenti.

Attributo Descrizione
PackageFile Obbligatorio. Il nome del pacchetto da installare deve includere una o più delle condizioni specificate da restituisce InstallConditions false. Il pacchetto deve essere definito nello stesso file usando un PackageFile elemento .
Arguments Facoltativo. Set di argomenti della riga di comando da passare al file del pacchetto.
EstimatedInstallSeconds Facoltativo. Il tempo stimato, in secondi, richiederà per installare il pacchetto. Questo valore determina le dimensioni dell'indicatore di stato visualizzato dal programma di avvio automatico all'utente. Il valore predefinito è 0, nel qual caso non viene specificata alcuna stima temporale.
EstimatedDiskBytes Facoltativo. Quantità stimata di spazio su disco, in byte, che il pacchetto occupa al termine dell'installazione. Questo valore viene usato nei requisiti di spazio su disco rigido visualizzati dal programma di avvio automatico all'utente. Il valore predefinito è 0, nel qual caso il programma di avvio automatico non visualizza alcun requisito di spazio su disco rigido.
EstimatedTempBytes Facoltativo. Quantità stimata di spazio su disco temporaneo, in byte, necessaria per il pacchetto.
Log Facoltativo. Percorso del file di log generato dal pacchetto, relativo alla directory radice del pacchetto.

InstallConditions

L'elemento InstallConditions è un elemento figlio dell'elemento Command . Ogni Command elemento può avere al massimo un InstallConditions elemento. Se non esiste alcun InstallConditions elemento, il pacchetto specificato da Condition verrà sempre eseguito.

BypassIf

L'elemento BypassIf è un elemento figlio dell'elemento InstallConditions e descrive una condizione positiva in cui il comando non deve essere eseguito. Ogni InstallConditions elemento può avere zero o più BypassIf elementi.

BypassIf ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà da testare. La proprietà deve essere stata definita in precedenza da un elemento figlio dell'elemento InstallChecks . Per altre informazioni, vedere <Elemento InstallChecks>.
Compare Obbligatorio. Tipo di confronto da eseguire. L'elenco seguente mostra i valori validi:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionGreaterThanOrEqualToVersionNotEqualTo, ValueExistsVersionLessThanOrEqualToVersionLessThanVersionGreaterThanValueGreaterThanValueNotExists
Value Obbligatorio. Valore da confrontare con la proprietà .
Schedule Facoltativo. Nome di un Schedule tag che definisce quando deve essere valutata questa regola.

FailIf

L'elemento FailIf è un elemento figlio dell'elemento InstallConditions e descrive una condizione positiva in cui l'installazione deve essere interrotta. Ogni InstallConditions elemento può avere zero o più FailIf elementi.

FailIf ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà da testare. La proprietà deve essere stata definita in precedenza da un elemento figlio dell'elemento InstallChecks . Per altre informazioni, vedere <Elemento InstallChecks>.
Compare Obbligatorio. Tipo di confronto da eseguire. L'elenco seguente mostra i valori validi:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionGreaterThanOrEqualToVersionNotEqualTo, ValueExistsVersionLessThanOrEqualToVersionLessThanVersionGreaterThanValueGreaterThanValueNotExists
Value Obbligatorio. Valore da confrontare con la proprietà .
String Facoltativo. Testo da visualizzare all'utente in caso di errore.
Schedule Facoltativo. Nome di un Schedule tag che definisce quando deve essere valutata questa regola.

ExitCodes

L'elemento ExitCodes è un elemento figlio dell'elemento Command . L'elemento ExitCodes contiene uno o più ExitCode elementi, che determinano le operazioni che l'installazione deve eseguire in risposta a un codice di uscita da un pacchetto. Sotto un elemento può essere presente un Command elemento facoltativoExitCode. L'elemento ExitCodes non ha attributi.

ExitCode

L'elemento ExitCode è un elemento figlio dell'elemento ExitCodes . L'elemento ExitCode determina le operazioni che l'installazione deve eseguire in risposta a un codice di uscita da un pacchetto. ExitCode non contiene elementi figlio e ha gli attributi seguenti.

Attributo Descrizione
Value Obbligatorio. Valore del codice di uscita a cui si applica questo ExitCode elemento.
Result Obbligatorio. Come l'installazione deve reagire a questo codice di uscita. L'elenco seguente mostra i valori validi:

Success. Contrassegna il pacchetto come installato correttamente.

SuccessReboot. Contrassegna il pacchetto come installato correttamente e indica al sistema di riavviare.

Fail. Contrassegna il pacchetto come non riuscito.

FailReboot. Contrassegna il pacchetto come non riuscito e indica al sistema di riavviare.
String Facoltativo. Valore da visualizzare all'utente in risposta a questo codice di uscita.
FormatMessageFromSystem Facoltativo. Determina se utilizzare il messaggio di errore fornito dal sistema corrispondente al codice di uscita o usare il valore fornito in String. I valori validi sono true, il che significa usare l'errore fornito dal sistema e false, il che significa usare la stringa fornita da String. Il valore predefinito è false. Se questa proprietà è false, ma String non è impostata, verrà utilizzato l'errore fornito dal sistema.

Esempio

L'esempio di codice seguente definisce i comandi per l'installazione di .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>

Vedi anche