Windows Installer usando a unidade usb para propósitos temporários

12

Ao instalar aplicativos criados com base no Windows Installer, parece que ele geralmente usa meu disco rígido externo USB (quando conectado) como local temporário enquanto expande e instala o aplicativo (cria uma pasta fora da raiz com um nome guid). Existe alguma maneira de alterar isso para que sempre seja padronizado para uma unidade específica?

Este parece ser o caso do Windows Vista e 7, não tendo certeza sobre versões anteriores.

EDIT: As variáveis de ambiente atuais são assim:

TEMP=C:\Users\<me>\AppData\Local\Temp
TMP=C:\Users\<me>\AppData\Local\Temp

EDIT: Eu tenho uma suspeita engraçada de que ele está usando a unidade com o maior espaço livre disponível.

    
por Douglas Anderson 16.11.2009 / 19:54

2 respostas

12

Acredito que o Windows Installer usa a variável de ambiente %TMP% . Você pode querer verificar esse valor e ver se ele está apontando para a sua letra da unidade HD externa.

UPDATE

Estranho ... isso parece ser um "recurso" do Windows Installer (para usar a unidade com mais espaço livre). Não consigo encontrar uma opção para desativá-lo. Gostaria de saber se você pode bloquear o sistema por permissões / sinalizador somente leitura ou algo semelhante. Isso me incomoda que a Microsoft não lhe daria uma opção para desativá-lo.

2a ATUALIZAÇÃO

Ok - então eu achei este artigo sobre a propriedade ROOTDRIVE . De nota particular:

If ROOTDRIVE is not set at a command line or authored into the Property table, the installer sets this property. During an administrative installation the installer sets ROOTDRIVE to the first connected network drive it finds that can be written to. If it is not an administrative installation, or if the installer can find no network drives, the installer sets ROOTDRIVE to the local drive that can be written to having the most free space.

    
por 16.11.2009 / 19:58
2

Eu tive esse problema com um disco rígido externo que era usado exclusivamente para fotos pessoais e vídeos caseiros. Desativei as permissões de "exclusão" de todos os usuários para evitar que os dados sejam perdidos. No entanto, a unidade começou a encher com arquivos MSI tmp. Qualquer remoção automática foi recusada, assim como qualquer ferramenta de limpeza, porque (como mencionei) eu havia recusado a permissão de exclusão. Minha solução foi desativar todas as permissões na unidade de destino para todos os usuários (com exceção dos privilégios de 'gravação' para um usuário), evitando que o sistema operacional gravasse na unidade em primeiro lugar. Espero que isso ajude.

    
por 24.04.2012 / 21:17