Compartir a través de


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.

Consulte también