Elemento <InstallChecks> (programa de arranque)
El elemento InstallChecks
admite el inicio de diversas pruebas en el equipo local para asegurarse de que se han instalado todos los requisitos previos adecuados de una aplicación.
Sintaxis
<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
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de AssemblyCheck
, el programa de arranque se asegurará de que el ensamblado identificado por el elemento exista en la caché global de ensamblados (GAC). No contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
Name |
Necesario. Nombre completo del ensamblado que se va a comprobar. |
PublicKeyToken |
Necesario. Forma abreviada de la clave pública asociada a este ensamblado con nombre seguro. Todos los ensamblados almacenados en la caché global de ensamblados (GAC) deben tener un nombre, una versión y una clave pública. |
Version |
Necesario. Versión del ensamblado. El número de versión sigue este formato: <versión principal>.<versión secundaria>.<versión de compilación>.<versión de revisión>. |
Language |
Opcional. Idioma de un ensamblado localizado. El valor predeterminado es neutral . |
ProcessorArchitecture |
Opcional. Procesador del equipo al que se dirige esta instalación. El valor predeterminado es msil . |
ExternalCheck
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de ExternalCheck
, el programa de arranque ejecutará el programa externo con nombre en un proceso independiente y almacenará su código de salida en la propiedad indicada por Property
. ExternalCheck
es útil para implementar comprobaciones de dependencia complejas, o cuando la única manera de comprobar la existencia de un componente es crear una instancia de él.
ExternalCheck
no contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
PackageFile |
Necesario. Programa externo que se va a ejecutar. El programa debe formar parte del paquete de distribución de instalación. |
Arguments |
Opcional. Proporciona argumentos de línea de comandos al archivo ejecutable designado por PackageFile . |
FileCheck
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de FileCheck
, el programa de arranque determinará si el archivo con nombre existe y devolverá el número de versión del archivo. Si el archivo no tiene un número de versión, el programa de arranque establece la propiedad designada por Property
en 0. Si el archivo no existe, Property
no se establece en ningún valor.
FileCheck
no contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
FileName |
Necesario. Nombre del archivo que se va a buscar. |
SearchPath |
Necesario. Disco o carpeta en la que se va a buscar el archivo. Debe ser una ruta de acceso relativa si se asigna SpecialFolder ; de lo contrario, debe ser una ruta de acceso absoluta. |
SpecialFolder |
Opcional. Carpeta que tiene una importancia especial para Windows o ClickOnce. El valor predeterminado es interpretar SearchPath como una ruta de acceso absoluta. Los valores válidos incluyen los siguientes:AppDataFolder . La carpeta de datos de la aplicación para esta aplicación ClickOnce; específica del usuario actual.CommonAppDataFolder . Carpeta de datos de la aplicación usada por todos los usuarios.CommonFilesFolder . Carpeta Archivos comunes del usuario actual.LocalDataAppFolder . Carpeta de datos para aplicaciones que no son móviles.ProgramFilesFolder . Carpeta Archivos de programa estándar para aplicaciones de 32 bits.StartUpFolder . Carpeta que contiene todas las aplicaciones iniciadas al iniciar el sistema.SystemFolder . Carpeta que contiene los archivos DLL del sistema de 32 bits.WindowsFolder . Carpeta que contiene la instalación del sistema Windows.WindowsVolume . Unidad o partición que contiene la instalación del sistema Windows. |
SearchDepth |
Opcional. Nivel de profundidad en el que se buscará el archivo con nombre en las subcarpetas. La búsqueda tiene equilibrio de carga en profundidad. El valor predeterminado es 0, que restringe la búsqueda a la carpeta de nivel superior especificada por SpecialFolder y SearchPath. |
MsiProductCheck
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de MsiProductCheck
, el programa de arranque comprueba si la instalación de Microsoft Windows Installer especificada se ha ejecutado hasta su finalización. El valor de la propiedad se establece en función del estado de ese producto instalado. Un valor positivo indica que el producto está instalado, 0 o -1 indica que no está instalado. (Consulte la función MsiQueryFeatureState del SDK de Windows Installer para más información). Si Windows Installer no está instalado en el equipo, no se establece Property
.
MsiProductCheck
no contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
Product |
Necesario. GUID del producto instalado. |
Feature |
Opcional. GUID de una característica específica de la aplicación instalada. |
RegistryCheck
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de RegistryCheck
, el programa de arranque comprueba si existe la clave del Registro especificada o si tiene el valor indicado.
RegistryCheck
no contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
Key |
Necesario. Nombre de la clave del Registro. |
Value |
Opcional. Nombre del valor del Registro que se va a recuperar. El valor predeterminado es devolver el texto del valor predeterminado. Value debe ser una cadena o DWORD. |
RegistryFileCheck
Este elemento es un elemento secundario opcional de InstallChecks
. Para cada instancia de RegistryFileCheck
, el programa de arranque recupera la versión del archivo especificado, intentando recuperar primero la ruta de acceso al archivo de la clave del Registro especificada. Esto es especialmente útil si desea buscar un archivo en un directorio especificado como un valor del Registro.
RegistryFileCheck
no contiene elementos y tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad para almacenar el resultado. Se puede hacer referencia a esta propiedad desde una prueba del elemento InstallConditions , que es un elemento secundario del elemento Command . Para más información, consulte Elemento <Commands>. |
Key |
Necesario. Nombre de la clave del Registro. Su valor se interpreta como la ruta de acceso a un archivo, a menos que se establezca el atributo File . Si esta clave no existe, Property no se establece. |
Value |
Opcional. Nombre del valor del Registro que se va a recuperar. El valor predeterminado es devolver el texto del valor predeterminado. Value debe ser una cadena |
FileName |
Opcional. Nombre de un archivo. Si se especifica, se supone que el valor obtenido de la clave del Registro es una ruta de acceso al directorio y este nombre se anexa a ella. Si no se especifica, se supone que el valor devuelto del Registro es la ruta de acceso completa a un archivo. |
SearchDepth |
Opcional. Nivel de profundidad en el que se buscará el archivo con nombre en las subcarpetas. La búsqueda tiene equilibrio de carga en profundidad. El valor predeterminado es 0, que restringe la búsqueda a la carpeta de nivel superior especificada por el valor de la clave del Registro. |
Observaciones
Aunque los elementos de InstallChecks
definen las pruebas que se van a ejecutar, no las ejecutan. Para ejecutar las pruebas, debe crear elementos Command
en el elemento Commands
.
Ejemplo
En el ejemplo de código siguiente se muestra el elemento InstallChecks
tal como se usa en el archivo de producto para .NET Framework.
<InstallChecks>
<ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
<RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>
InstallConditions
Cuando se evalúan InstallChecks
, generan propiedades. A continuación, InstallConditions
usa las propiedades para determinar si un paquete debe instalarse, omitirse o producir un error. En la tabla siguiente se muestran las InstallConditions
:
Condición | Descripción |
---|---|
FailIf |
Si alguna condición FailIf se evalúa como true, se producirá un error en el paquete. No se evaluará el resto de las condiciones. |
BypassIf |
Si alguna condición BypassIf se evalúa como true, el paquete se omitirá. No se evaluará el resto de las condiciones. |
Propiedades predefinidas
En la tabla siguiente, se enumeran los elementos BypassIf
y FailIf
.
Propiedad | Notas | Valores posibles |
---|---|---|
Version9X |
Número de versión de un sistema operativo Windows 9X. | 4.10 (Windows 98) |
VersionNT |
Número de versión de un sistema operativo Windows. | Major.Minor.ServicePack |
VersionNT64 |
Número de versión de un sistema operativo Windows de 64 bits. | Major.Minor.ServicePack. |
VersionMsi |
Número de versión del servicio Windows Installer. | 2.0 = Windows Installer 2.0 |
AdminUser |
Especifica si un usuario tiene privilegios de administrador en un sistema operativo basado en Windows NT. | 0 = sin privilegios de administrador 1 = privilegios de administrador |
Por ejemplo, para bloquear la instalación en un equipo que ejecuta Windows 8, use código como el siguiente:
<!-- Block install on Windows 8 -->
<FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>
Para dejar de ejecutar InstallChecks si se cumple una condición FailIf o BypassIf, use el atributo BeforeInstallChecks. Por ejemplo:
<!-- 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
El atributo BeforeInstallChecks
se admite a partir de la versión Visual Studio 2019 Update 9.