c# - visual - wix msi installer




Criar pasta e arquivo no perfil de usuário atual, a partir do perfil de administrador (2)

Nosso cliente só permite que aplicativos sejam instalados quando conectados como Admin. O aplicativo que precisa ser instalado deve ser instalado para o usuário atual da máquina. O aplicativo instala bem, o meu problema vem quando eu preciso soltar um arquivo de configuração na pasta appdata / perfil de usuário do usuário. Como é onde eles querem, atualmente a configuração está sendo descartada no perfil do administrador na instalação. Como faço para superar isso, existe uma maneira de eu verificar a instalação se houver outros perfis e talvez escrever para eles, mas isso parece sujo.


Não crie o arquivo de configuração na instalação, verifique se ele existe na execução do programa, caso contrário, crie-o na pasta de perfis de usuários em execução. Se ele existir, use os dados nele e continue.


Você pode fazer isso funcionar com o recurso de reparo. O quadro geral é que o arquivo foi instalado para um usuário no momento da instalação em um local do perfil do usuário e, em uma instalação por sistema, isso significa que o arquivo estará ausente quando outro usuário fizer logon para usar o aplicativo. Depende da estrutura dos componentes, recursos e atalhos do MSI, mas iniciar o aplicativo com um atalho anunciado pode resultar na instalação do arquivo ausente com uma auto-reparação. Obviamente, isso requer que o MSI de origem permaneça disponível.

No entanto, a maneira mais segura de obter o arquivo instalado para qualquer novo usuário é explicitamente chamar MsiProvideComponent passando o ProductCode do MSI, o nome do recurso, o ID do componente e assim por diante, conforme descrito na documentação. Como dizem os documentos, isso instalará o componente se estiver faltando, novamente exigindo que o MSI de origem esteja disponível.

Esta funcionalidade lida com o caso em que existem contas de usuários que ainda não foram criadas, então obviamente você ainda não pode colocar arquivos em suas pastas de perfil.

Se é a melhor abordagem em comparação com os outros, dependerá de detalhes específicos do aplicativo.





profiles