Condividi tramite


<Elemento InstallChecks> (programma di avvio automatico)

L'elemento InstallChecks supporta l'avvio di un'ampia gamma di test sul computer locale per assicurarsi che tutti i prerequisiti appropriati per un'applicazione siano stati installati.

Sintassi

<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

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di AssemblyCheckavvio automatico verifica che l'assembly identificato dall'elemento esista nella Global Assembly Cache (GAC). Non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
Name Obbligatorio. Nome completo dell'assembly da controllare.
PublicKeyToken Obbligatorio. Forma abbreviata della chiave pubblica associata a questo assembly con nome sicuro. Tutti gli assembly archiviati nella GAC devono avere un nome, una versione e una chiave pubblica.
Version Obbligatorio. Versione dell'assembly.

Il numero di versione ha la versione principale del formato<.<>versione> secondaria.<versione> build.<versione revisione>.
Language Facoltativo. Lingua di un assembly localizzato. Il valore predefinito è neutral.
ProcessorArchitecture Facoltativo. Processore di computer di destinazione di questa installazione. Il valore predefinito è msil.

ExternalCheck

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di ExternalCheckavvio automatico eseguirà il programma esterno denominato in un processo separato e archivierà il codice di uscita nella proprietà indicata da Property. ExternalCheck è utile per implementare controlli delle dipendenze complessi o quando l'unico modo per verificare l'esistenza di un componente consiste nell'crearne un'istanza.

ExternalCheck non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
PackageFile Obbligatorio. Programma esterno da eseguire. Il programma deve far parte del pacchetto di distribuzione di installazione.
Arguments Facoltativo. Fornisce argomenti della riga di comando all'eseguibile denominato da PackageFile.

FileCheck

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di FileCheckavvio automatico determinerà se il file denominato esiste e restituirà il numero di versione del file. Se il file non ha un numero di versione, il programma di avvio automatico imposta la proprietà denominata da Property su 0. Se il file non esiste, Property non è impostato su alcun valore.

FileCheck non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
FileName Obbligatorio. Nome del file da trovare.
SearchPath Obbligatorio. Disco o cartella in cui cercare il file. Deve trattarsi di un percorso relativo se SpecialFolder assegnato; in caso contrario, deve essere un percorso assoluto.
SpecialFolder Facoltativo. Cartella con un significato speciale per Windows o ClickOnce. L'impostazione predefinita consiste nell'interpretare SearchPath come percorso assoluto. I valori validi sono i seguenti:

AppDataFolder. Cartella dei dati dell'applicazione per questa applicazione ClickOnce; specifico dell'utente corrente.

CommonAppDataFolder. Cartella dei dati dell'applicazione usata da tutti gli utenti.

CommonFilesFolder. Cartella File comuni per l'utente corrente.

LocalDataAppFolder. Cartella dati per le applicazioni non mobili.

ProgramFilesFolder. Cartella programmi standard per le applicazioni a 32 bit.

StartUpFolder. Cartella contenente tutte le applicazioni avviate all'avvio del sistema.

SystemFolder. Cartella contenente DLL di sistema a 32 bit.

WindowsFolder. Cartella che contiene l'installazione del sistema Windows.

WindowsVolume. Unità o partizione che contiene l'installazione del sistema Windows.
SearchDepth Facoltativo. Profondità in corrispondenza della quale cercare le sottocartelle per il file denominato. La ricerca è depth-first. Il valore predefinito è 0, che limita la ricerca alla cartella di primo livello specificata da SpecialFolder e SearchPath.

MsiProductCheck

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di MsiProductCheckavvio automatico verifica se l'installazione di Microsoft Windows Installer specificata è stata eseguita fino al completamento. Il valore della proprietà viene impostato a seconda dello stato del prodotto installato. Un valore positivo indica che il prodotto è installato, 0 o -1 indica che non è installato. Per altre informazioni, vedere la funzione MsiQueryFeatureState di Windows Installer SDK. . Se Windows Installer non è installato nel computer, Property non è impostato.

MsiProductCheck non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
Product Obbligatorio. GUID per il prodotto installato.
Feature Facoltativo. GUID per una funzionalità specifica dell'applicazione installata.

RegistryCheck

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di avvio automatico verifica se la chiave del Registro di RegistryChecksistema specificata esiste o se ha il valore indicato.

RegistryCheck non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
Key Obbligatorio. Nome della chiave del Registro di sistema.
Value Facoltativo. Nome del valore del Registro di sistema da recuperare. Il valore predefinito consiste nel restituire il testo del valore predefinito. Value deve essere un valore String o DWORD.

RegistryFileCheck

Questo elemento è un elemento figlio facoltativo di InstallChecks. Per ogni istanza di , il programma di RegistryFileCheckavvio automatico recupera la versione del file specificato, tentando innanzitutto di recuperare il percorso del file dalla chiave del Registro di sistema specificata. Ciò è particolarmente utile se si desidera cercare un file in una directory specificata come valore nel Registro di sistema.

RegistryFileCheck non contiene elementi e ha gli attributi seguenti.

Attributo Descrizione
Property Obbligatorio. Nome della proprietà per archiviare il risultato. È possibile fare riferimento a questa proprietà da un test sotto l'elemento InstallConditions , che è un elemento figlio dell'elemento Command . Per altre informazioni, vedere <Elemento Commands>.
Key Obbligatorio. Nome della chiave del Registro di sistema. Il valore viene interpretato come percorso di un file, a meno che l'attributo File non sia impostato. Se questa chiave non esiste, Property non è impostata.
Value Facoltativo. Nome del valore del Registro di sistema da recuperare. Il valore predefinito consiste nel restituire il testo del valore predefinito. Value deve essere un valore String.
FileName Facoltativo. Nome di un file. Se specificato, si presuppone che il valore ottenuto dalla chiave del Registro di sistema sia un percorso di directory e questo nome venga aggiunto. Se non specificato, si presuppone che il valore restituito dal Registro di sistema sia il percorso completo di un file.
SearchDepth Facoltativo. Profondità in corrispondenza della quale cercare le sottocartelle per il file denominato. La ricerca è depth-first. Il valore predefinito è 0, che limita la ricerca alla cartella di primo livello specificata dal valore della chiave del Registro di sistema.

Osservazioni:

Mentre gli elementi sottostanti InstallChecks definiscono i test da eseguire, non vengono eseguiti. Per eseguire i test, è necessario creare Command elementi sotto l'elemento Commands .

Esempio

Nell'esempio di codice seguente viene illustrato l'elemento InstallChecks usato nel file di prodotto per .NET Framework.

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

Quando InstallChecks vengono valutati, producono proprietà. Le proprietà vengono quindi utilizzate da InstallConditions per determinare se un pacchetto deve installare, ignorare o non riuscire. La tabella seguente elenca :InstallConditions

Condizione Descrizione
FailIf Se una FailIf condizione restituisce true, il pacchetto avrà esito negativo. Il resto delle condizioni non verrà valutato.
BypassIf Se una BypassIf condizione restituisce true, il pacchetto verrà ignorato. Il resto delle condizioni non verrà valutato.

Proprietà predefinite

Nella tabella seguente sono elencati gli BypassIf elementi e FailIf :

Proprietà Note Valori possibili
Version9X Numero di versione di un sistema operativo Windows 9X. 4.10 = Windows 98
VersionNT Numero di versione di un sistema operativo Windows. Major.Minor.ServicePack
VersionNT64 Numero di versione di un sistema operativo Windows a 64 bit. Major.Minor.ServicePack.
VersionMsi Numero di versione del servizio Windows Installer. 2.0 = Windows Installer 2.0
AdminUser Specifica se un utente dispone di privilegi di amministratore in un sistema operativo basato su Windows NT. 0 = nessun privilegio di amministratore

1 = privilegi di amministratore

Ad esempio, per bloccare l'installazione in un computer che esegue Windows 8, usare codice come il seguente:

    <!-- Block install on Windows 8 -->
    <FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>

Per ignorare l'esecuzione dei controlli di installazione se viene soddisfatta una condizione FailIf o BypassIf, utilizzare l'attributo BeforeInstallChecks. Ad esempio:

    <!-- 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"/>

Nota

L'attributo BeforeInstallChecks è supportato a partire dalla versione di Visual Studio 2019 Update 9.

Vedi anche