Share via


Elemento <InstallChecks> (bootstrapper)

O elemento InstallChecks dá suporte ao início de uma variedade de testes no computador local para garantir que todos os pré-requisitos apropriados de um aplicativo tenham sido instalados.

Sintaxe

<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

Esse é um elemento filho opcional de InstallChecks. Para cada instância do AssemblyCheck, o bootstrapper garantirá que o assembly identificado pelo elemento exista no GAC (cache de assembly global). Ele não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
Name Obrigatórios. O nome totalmente qualificado do assembly a ser verificado.
PublicKeyToken Obrigatórios. A forma abreviada da chave pública associada a este assembly de nome forte. Todos os assemblies armazenados no GAC devem ter um nome, uma versão e uma chave pública.
Version Obrigatórios. A versão do assembly.

O número de versão tem o formato <versão principal>.<versão secundária>.<versão do build>.<versão de revisão>.
Language Opcional. A linguagem de um assembly localizado. O padrão é neutral.
ProcessorArchitecture Opcional. O processador do computador direcionado por esta instalação. O padrão é msil.

ExternalCheck

Esse é um elemento filho opcional de InstallChecks. Para cada instância do ExternalCheck, o bootstrapper executará o programa externo nomeado em um processo separado e armazenará seu código de saída na propriedade indicada por Property. ExternalCheck é útil para implementar verificações de dependência complexas ou quando a única maneira de verificar a existência de um componente é instanciá-lo.

ExternalCheck não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
PackageFile Obrigatórios. O programa externo a ser executado. O programa deve fazer parte do pacote de distribuição de instalação.
Arguments Opcional. Fornece argumentos de linha de comando para o executável nomeado por PackageFile.

FileCheck

Esse é um elemento filho opcional de InstallChecks. Para cada instância do FileCheck, o bootstrapper determinará se o arquivo nomeado existe e retornará o número de versão do arquivo. Se o arquivo não tiver um número de versão, o bootstrapper definirá a propriedade denominada por Property como 0. Se o arquivo não existir, Property não terá um valor.

FileCheck não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
FileName Obrigatórios. O nome do arquivo a ser localizado.
SearchPath Obrigatórios. O disco ou a pasta na qual o arquivo deve ser procurado. Deve ser um caminho relativo se SpecialFolder for atribuído. Caso contrário, deve ser um caminho absoluto.
SpecialFolder Opcional. Uma pasta que tem um significado especial para o Windows ou para o ClickOnce. O padrão é interpretar SearchPath como um caminho absoluto. Os valores válidos incluem os seguintes:

AppDataFolder. A pasta de dados do aplicativo para este aplicativo ClickOnce, específica para o usuário atual.

CommonAppDataFolder. A pasta de dados do aplicativo usada por todos os usuários.

CommonFilesFolder. A pasta Arquivos Comuns do usuário atual.

LocalDataAppFolder. A pasta de dados para aplicativos não roaming.

ProgramFilesFolder. A pasta Arquivos de Programas padrão para aplicativos de 32 bits.

StartUpFolder. A pasta que contém todos os aplicativos iniciados na inicialização do sistema.

SystemFolder. A pasta que contém DLLs do sistema de 32 bits.

WindowsFolder. A pasta que contém a instalação do sistema Windows.

WindowsVolume. A unidade ou partição que contém a instalação do sistema Windows.
SearchDepth Opcional. A profundidade na qual as subpastas do arquivo nomeado serão pesquisadas. A pesquisa é em balanceamento em profundidade. O padrão é 0, que restringe a pesquisa à pasta de nível superior especificada por SpecialFolder e SearchPath.

MsiProductCheck

Esse é um elemento filho opcional de InstallChecks. Para cada instância do MsiProductCheck, o bootstrapper verifica se a instalação especificada do Microsoft Windows Installer foi executada até ser concluída. O valor da propriedade é definido dependendo do estado do produto instalado. Um valor positivo indica que o produto está instalado, 0 ou -1 indica que ele não está instalado. (Consulte a função do SDK do Windows Installer MsiQueryFeatureState para obter mais informações.) . Se o Windows Installer não estiver instalado no computador, Property não será definido.

MsiProductCheck não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
Product Obrigatórios. O GUID do produto instalado.
Feature Opcional. O GUID de um recurso específico do aplicativo instalado.

RegistryCheck

Esse é um elemento filho opcional de InstallChecks. Para cada instância do RegistryCheck, o bootstrapper verifica se a chave do Registro especificada existe ou se tem o valor indicado.

RegistryCheck não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
Key Obrigatórios. O nome da chave do Registro.
Value Opcional. O nome do valor do registro a ser recuperado. O padrão é retornar o texto do valor padrão. Value deve ser uma Cadeia de Caracteres ou um DWORD.

RegistryFileCheck

Esse é um elemento filho opcional de InstallChecks. Para cada instância do RegistryFileCheck, o bootstrapper recupera a versão do arquivo especificado, primeiro tentando recuperar o caminho para o arquivo da chave do Registro especificada. Isso é útil se você quiser pesquisar um arquivo em um diretório especificado como um valor no registro.

RegistryFileCheck não tem elementos e tem os atributos a seguir.

Atributo Descrição
Property Obrigatórios. O nome da propriedade onde o resultado será armazenado. Essa propriedade pode ser referenciada a partir de um teste sob o elemento InstallConditions, que é um filho do elemento Command. Para obter mais informações, confira <Elemento> Commands.
Key Obrigatórios. O nome da chave do Registro. Seu valor é interpretado como o caminho para um arquivo, a menos que o atributo File esteja definido. Se essa chave não existir, Property não será definido.
Value Opcional. O nome do valor do registro a ser recuperado. O padrão é retornar o texto do valor padrão. Value precisa ser uma cadeia de caracteres.
FileName Opcional. O nome de um arquivo. Se especificado, o valor obtido da chave do Registro será considerado um caminho de diretório e esse nome será acrescentado a ele. Se não for especificado, o valor retornado do registro será considerado o caminho completo para um arquivo.
SearchDepth Opcional. A profundidade na qual as subpastas do arquivo nomeado serão pesquisadas. A pesquisa é em balanceamento em profundidade. O padrão é 0, que restringe a pesquisa à pasta de nível superior especificada pelo valor da chave do Registro.

Comentários

Embora os elementos abaixo de InstallChecks definam os testes a serem executados, eles não os executam. Para executar os testes, você deve criar elementos Command abaixo do elemento Commands.

Exemplo

O exemplo de código a seguir demonstra o elemento InstallChecks na forma em que ele é usado no arquivo de produto para o .NET Framework.

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

InstallConditions

Quando InstallChecks são avaliados, eles produzem propriedades. Em seguida, as propriedades são usadas por InstallConditions para determinar se um pacote deve ser instalado, ignorado ou falhar. A seguinte tabela lista os InstallConditions:

Condição Descrição
FailIf Se alguma condição FailIf for avaliada como true, o pacote falhará. O restante das condições não será avaliado.
BypassIf Se alguma condição BypassIf for avaliada como true, o pacote será ignorado. O restante das condições não será avaliado.

Propriedades predefinidas

A tabela a seguir lista os elementos BypassIf e FailIf:

Propriedade Observações Valores possíveis
Version9X Número de versão de um sistema operacional Windows 9X. 4.10 = Windows 98
VersionNT Número de versão de um sistema operacional Windows. Major.Minor.ServicePack
VersionNT64 Número de versão de um sistema operacional Windows de 64 bits. Major.Minor.ServicePack.
VersionMsi Número de versão do serviço do Windows Installer. 2.0 = Windows Installer 2.0
AdminUser Especifica se um usuário tem privilégios de administrador em um sistema operacional baseado em Windows NT. 0 = sem privilégios de administrador

1 = privilégios de administrador

Por exemplo, para bloquear a instalação em um computador que executa o Windows 8, use código como o seguinte:

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

Para ignorar a execução de verificações de instalação se uma condição FailIf ou BypassIf for atendida, use o atributo BeforeInstallChecks. Por exemplo:

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

Observação

O atributo BeforeInstallChecks tem suporte a partir da versão da Atualização 9 do Visual Studio 2019.

Confira também