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.