<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 AssemblyCheck
avvio 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 ExternalCheck
avvio 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 FileCheck
avvio 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 MsiProductCheck
avvio 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 RegistryCheck
sistema 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 RegistryFileCheck
avvio 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.