Partilhar via


Contexto de instalação

O Windows Installer pode instalar um pacote em um computador em dois contextos de instalação: por máquina e por usuário. Uma instalação do pacote por máquina é necessária para permitir que todos os usuários do computador acessem e usem o aplicativo. Como uma instalação por máquina faz alterações no sistema que afetam todos os usuários, os usuários padrão com privilégios limitados podem ser impedidos de instalar um pacote no contexto por máquina sem primeiro obter permissão.

Você pode especificar o contexto de instalação criando o pacote para instalação por usuário ou por máquina e usando o ALLUSERS e propriedades de MSIINSTALLPERUSER. Com base nessas propriedades, o Windows Installer redireciona automaticamente os valores das propriedades e registros da pasta para locais para o contexto por usuário ou por máquina.

Observação

A propriedade MSIINSTALLPERUSER, disponível a partir do Windows Installer 5.0 e Windows Server 2008 R2 e Windows 7, pode facilitar o desenvolvimento de um único pacote capaz de ser instalado no contexto por máquina ou por usuário. Para obter informações sobre como desenvolver um pacote de dupla finalidade que dá ao usuário a capacidade de escolher o contexto de instalação no momento da instalação, consulte de criação de pacote único . O Windows Installer ignora a propriedade MSIINSTALLPERUSER se o valor de ALLUSERS não for 2. O Windows Installer sempre redefine o valor de ALLUSERS para 1 quando é instalado no contexto por máquina e redefine o valor de ALLUSERS para uma cadeia de caracteres vazia ("") quando é instalado no contexto por usuário.

 

Redirecionamento de atalho

A tabela a seguir compara os locais dos atalhos para contextos de instalação por máquina e por usuário.

Per-Machine Contexto de instalação (ALLUSERS=1) Per-User Contexto de instalação (ALLUSERS="")
Os aplicativos aparecem em Adicionar ou remover programas no painel de controle para todos os usuários do computador.
Os aplicativos aparecem somente em Adicionar ou remover programas no painel de controle para usuários que instalaram os aplicativos.
Os atalhos são instalados no perfil Todos os usuários.
Os atalhos são instalados apenas no perfil desse usuário.
Ícones e transformações são armazenados em %WINDOWS%\Installer\{ProductCode}.
Ícones e transformações são armazenados em %USERPROFILE%\Application Data\Microsoft\Installer\{ProductCode GUID}

 

Redirecionamento do Registro

A tabela a seguir compara os locais das entradas do Registro para os contextos de instalação por máquina e por usuário.

Per-Machine Contexto de instalação (ALLUSERS=1) Per-User Contexto de instalação (ALLUSERS="")
O Windows Installer grava ou remove valores do Registro inseridos na tabela Registro e tabela RemoveRegistry, com o valor -1 na coluna Raiz, em HKEY_LOCAL_MACHINE.
O Windows Installer grava ou remove valores do Registro inseridos na tabela Registro e tabela RemoveRegistry, com o valor -1 na coluna Raiz, em HKEY_CURRENT_USER.
O Windows Installer grava ou remove valores do Registro inseridos na tabela do Registro e tabela de RemoveRegistry, com o valor msidbRegistryRootClassesRoot (0) na coluna Raiz, em HKLM\Software\Classes.
O Windows Installer grava ou remove valores do Registro inseridos na tabela de do Registro e tabela de RemoveRegistry, com o valor msidbRegistryRootClassesRoot (0) na coluna Raiz, em HKCU\Software\Classes.
O registro COM é escrito para HKLM\Software\Classes.
O registro COM é escrito para HKCU\Software\Classes.

 

Redirecionamento de pasta

O Windows Installer define os valores das propriedades da pasta para o caminho completo da respetiva pasta para o contexto de instalação.

Observação

As pastas são identificadas por suas KNOWNFOLDERID e constantes de CSIDL. A partir do Windows Vista, os aplicativos devem usar a função SHGetKnownFolderPath e a KNOWNFOLDERID para determinar o caminho completo para as pastas especiais. Os aplicativos existentes que usam a função SHGetFolderPath e IDs de item especiais constantes (CSIDL) continuarão a funcionar.

 

A tabela a seguir compara os locais das pastas usadas quando o Windows Installer instala o pacote nos contextos de instalação por máquina ou por usuário.

Per-Machine Contexto de instalação (ALLUSERS=1) Per-User Contexto de instalação (ALLUSERS="")
DesktopFolderO caminho completo da pasta Desktop para todos os usuários.
FOLDERID_PublicDesktop (CSIDL_COMMON_DESKTOPDIRECTORY)
DesktopFolderO caminho completo da pasta Desktop para o usuário atual.
FOLDERID_Desktop (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY)
ProgramMenuFolderO caminho completo da pasta Program Menu para todos os usuários.
FOLDERID_CommonPrograms (CSIDL_COMMON_PROGRAMS)
ProgramMenuFolderO caminho completo da pasta Program Menu para o usuário atual.
FOLDERID_Programs (CSIDL_PROGRAMS)
StartMenuFolderO caminho completo da pasta Menu Iniciar para todos os usuários.
FOLDERID_CommonStartMenu (CSIDL_COMMON_STARTMENU)
StartMenuFolderO caminho completo da pasta Menu Iniciar para o usuário atual.
FOLDERID_StartMenu (CSIDL_STARTMENU)
StartUpFolderO caminho completo da pasta Start Up para todos os usuários.
FOLDERID_CommonStartup (CSIDL_COMMON_STARTUP)
StartUpFolderO caminho completo da pasta Start Up para o usuário atual.
FOLDERID_Startup (CSIDL_STARTUP)
TemplateFolderO caminho completo da pasta Templates para todos os usuários.
FOLDERID_CommonTemplates (CSIDL_COMMON_TEMPLATES)
TemplateFolderO caminho completo da pasta Templates para o usuário atual.
FOLDERID_Templates (CSIDL_TEMPLATES)
AdminToolsFolderO caminho completo da pasta Ferramentas de Administração para todos os usuários.
FOLDERID_CommonAdminTools (CSIDL_COMMON_ADMINTOOLS)
AdminToolsFolderO caminho completo da pasta Ferramentas de Administração para o usuário atual.
FOLDERID_AdminTools (CSIDL_ADMINTOOLS)
AppDataFolderO caminho completo da pasta Menu do Programa.
Windows Vista e versões posteriores: O caminho completo da pasta Roaming.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
AppDataFolderO caminho completo da pasta Menu do Programa.
Windows Vista e versões posteriores: O caminho completo da pasta Roaming.

FOLDERID_RoamingAppData (CSIDL_APPDATA)
CommonAppDataFolderO caminho completo da pasta que contém dados do aplicativo para todos os usuários.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
CommonAppDataFolderO caminho completo da pasta que contém dados do aplicativo para todos os usuários.
FOLDERID_ProgramData (CSIDL_COMMON_APPDATA)
FavoritesFolderO caminho completo da pasta Favoritos para o usuário atual.
FOLDERID_Favorites (CSIDL_FAVORITES)
FavoritesFolderO caminho completo da pasta Favoritos para o usuário atual.
FOLDERID_Favorites (CSIDL_FAVORITES)
PersonalFolderO caminho completo da pasta Meus Documentos ou da pasta Pessoal para o usuário atual.
Windows Vista e versões posteriores: O caminho completo da pasta Documentos para o usuário atual.

FOLDERID_Documents (CSIDL_PERSONAL)
PersonalFolderO caminho completo da pasta Meus Documentos ou da pasta Pessoal para o usuário atual.
Windows Vista e versões posteriores: O caminho completo da pasta Documentos para o usuário atual.

FOLDERID_Documents (CSIDL_PERSONAL)
SendToFolderO caminho completo da pasta SendTo.
FOLDERID_SendTo (CSIDL_SENDTO)
SendToFolderO caminho completo da pasta SendTo.
FOLDERID_SendTo (CSIDL_SENDTO)
FontsFolderO caminho completo da pasta System Fonts.
FOLDERID_Fonts (CSIDL_FONTS)
FontsFolderO caminho completo da pasta System Fonts.
FOLDERID_Fonts (CSIDL_FONTS)
ProgramFilesFolderversão de 32 bits do Windows: O valor da propriedade é o caminho completo para a pasta Arquivos de Programas para todos os usuários (por exemplo, %ProgramFiles%.) O identificador desta pasta é FOLDERID_ProgramFiles (CSIDL_PROGRAM_FILES.) Os identificadores FOLDERID_ProgramFiles e FOLDERID_ProgramFilesX86 representam a mesma pasta. Os arquivos nesta pasta podem ser acessados por todos os usuários.
versão de 64 bits do Windows: O valor da propriedade é o caminho completo para a pasta Arquivos de Programas (x86) para todos os usuários (por exemplo, %ProgramFiles(x86)%.) O identificador desta pasta é FOLDERID_ProgramFilesX86 (CSIDL_PROGRAM_FILESX86.) Os arquivos nesta pasta podem ser acessados por todos os usuários.
ProgramFilesFolderWindows Server 2008 R2 e Windows 7: O valor da propriedade é o caminho completo da pasta Programas para o usuário atual (por exemplo, %LocalAppData%\Programs.) O identificador para esta pasta é FOLDERID_UserProgramFiles em sistemas de 32 bits e 64 bits. Não existe um identificador CSIDL equivalente para FOLDERID_UserProgramFiles. Os ficheiros nesta pasta só podem ser acedidos pelo utilizador que instalou esta pasta.
Windows Server 2008 e versões anteriores e Windows Vista e versões anteriores: Nenhuma pasta compatível por usuário está disponível. O caminho é o mesmo que para o contexto por máquina (por exemplo, %ProgramFiles% ou %ProgramFiles(x86)%.) Os arquivos nesta pasta podem ser acessados por todos os usuários.

CommonFilesFolderversão de 32 bits do Windows: O valor da propriedade é o caminho completo para a pasta Common Files para todos os usuários (por exemplo, %ProgramFiles%\Common Files.) O identificador desta pasta é FOLDERID_ProgramFilesCommon (CSIDL_PROGRAM_FILES_COMMON.) Os identificadores FOLDERID_ProgramFilesCommon e FOLDERID_ProgramFilesCommonX86 representam a mesma pasta. Os arquivos nesta pasta podem ser acessados por todos os usuários.
versão de 64 bits do Windows: O valor da propriedade é o caminho completo para a pasta Common Files para todos os usuários (por exemplo, %ProgramFiles(x86)%\Common Files.) O identificador desta pasta é FOLDERID_ProgramFilesCommonX86 (CSIDL_PROGRAM_FILES_COMMONX86.) Os arquivos nesta pasta podem ser acessados por todos os usuários.
CommonFilesFolderWindows Server 2008 R2 e Windows 7: O valor da propriedade é o caminho completo da pasta Common para o usuário atual (por exemplo, %LocalAppData%\Programs\Common.) O identificador para esta pasta é FOLDERID_UserProgramFilesCommon em sistemas de 32 bits e 64 bits. Não existe um identificador CSIDL equivalente para FOLDERID_UserProgramFilesCommon. Os ficheiros nesta pasta só podem ser acedidos pelo utilizador que instalou esta pasta.
Windows Server 2008 e versões anteriores e Windows Vista e versões anteriores: Nenhuma pasta compatível por usuário está disponível. O caminho é o mesmo que no contexto por máquina (por exemplo, %ProgramFiles%\Common Files ou %ProgramFiles(x86)%\Common Files.) Os arquivos nesta pasta podem ser acessados por todos os usuários.

ProgramFiles64FolderO valor da propriedade é o caminho completo para a pasta Arquivos de Programas para todos os usuários (por exemplo, %ProgramFiles%.) O identificador desta pasta é FOLDERID_ProgramFilesX64. Não existe um identificador CSIDL equivalente para FOLDERID_ProgramFilesX64. Esta é a pasta predefinida para componentes de 64 bits e aplica-se a sistemas de 64 bits. Os arquivos nesta pasta podem ser acessados por todos os usuários.
ProgramFiles64FolderWindows Server 2008 R2 e Windows 7: O valor da propriedade é o caminho completo da pasta Programas para o usuário atual (por exemplo, %LocalAppData%\Programs.) O identificador desta pasta é FOLDERID_UserProgramFiles. Não existe um identificador CSIDL equivalente para FOLDERID_UserProgramFiles. Os ficheiros nesta pasta só podem ser acedidos pelo utilizador que instalou esta pasta.
Windows Server 2008 e versões anteriores e Windows Vista e versões anteriores: Nenhuma pasta compatível por usuário está disponível. O caminho é o mesmo que para o contexto por máquina (por exemplo, %ProgramFiles%.) Os arquivos nesta pasta podem ser acessados por todos os usuários.

CommonFiles64FolderO valor da propriedade é o caminho completo para a pasta Common Files para todos os usuários (por exemplo, %ProgramFiles%\Common Files.) Esta é a pasta predefinida para componentes de 64 bits e aplica-se a sistemas de 64 bits. O identificador desta pasta é FOLDERID_ProgramFilesCommonX64. Não existe um identificador CSIDL equivalente para FOLDERID_ProgramFilesCommonX64. Os arquivos nesta pasta podem ser acessados por todos os usuários.
CommonFiles64FolderWindows Server 2008 R2 e Windows 7: O valor da propriedade é o caminho completo da pasta Common para o usuário atual (por exemplo, %LocalAppData%\Programs\Common.) O identificador desta pasta é FOLDERID_UserProgramFilesCommon. Não existe um identificador CSIDL equivalente para FOLDERID_UserProgramFilesCommon. Os ficheiros nesta pasta só podem ser acedidos pelo utilizador que instalou esta pasta.
Windows Server 2008 e versões anteriores e Windows Vista e versões anteriores: Nenhuma pasta compatível por usuário está disponível. O caminho é o mesmo que para o contexto por máquina (por exemplo, %ProgramFiles%\Common Files.) Os arquivos nesta pasta podem ser acessados por todos os usuários.

WindowsFolderO caminho completo da pasta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
WindowsFolderO caminho completo da pasta Windows.
FOLDERID_Windows (CSIDL_WINDOWS)
SystemFolderO caminho completo da pasta System.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
SystemFolderO caminho completo da pasta System.
FOLDERID_SystemX86 (CSIDL_SYSTEMX86)
LocalAppDataFolderO caminho completo da pasta que contém aplicativos locais (não móveis).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
LocalAppDataFolderO caminho completo da pasta que contém aplicativos locais (não móveis).
FOLDERID_LocalAppData (CSIDL_LOCAL_APPDATA)
MyPicturesFolderO caminho completo da pasta Imagens ou Minhas Imagens.
FOLDERID_Pictures (CSIDL_MYPICTURES)
MyPicturesFolderO caminho completo da pasta Imagens ou Minhas Imagens.
FOLDERID_Pictures (CSIDL_MYPICTURES)
PrintHoodFolderO caminho completo da pasta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
PrintHoodFolderO caminho completo da pasta PrintHood.
FOLDERID_PrintHood (CSIDL_PRINTHOOD)
NetHoodFolderO caminho completo da pasta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
NetHoodFolderO caminho completo da pasta NetHood.
FOLDERID_NetHood (CSIDL_NETHOOD)
RecentFolderO caminho completo da pasta Recente.
FOLDERID_Recent (CSIDL_RECENT)
RecentFolderO caminho completo da pasta Recente.
FOLDERID_Recent (CSIDL_RECENT)

 

Observação

Um aplicativo pode chamar o MsiEnumProducts ou funções de MsiEnumProductsEx para enumerar todos os produtos instalados no sistema. O aplicativo pode recuperar informações sobre o contexto de instalação desses produtos chamando o MsiGetProductInfoEx ou funções de MsiGetProductInfo. Para obter informações, consulte Determinando o contexto de instalação.