Não foi possível executar a DLL para instaladores MSI

23

DLL não pôde ser executado

Acho que é um problema com o Windows Installer. Eu tentei reiniciar o serviço, mas sem efeito. Não consigo instalar nada que termine com .msi . Às vezes, recebo uma mensagem de erro:

insira a descrição da imagem aqui

Logs do visualizador de eventos:

Instalador do Python:

Produto: Python 2.7.3 - Erro 1723. Há um problema com este pacote do Windows Installer. Não foi possível executar uma DLL necessária para a conclusão desta instalação. Entre em contato com o pessoal de suporte ou o fornecedor do pacote. Ação CheckDir, entrada: _CheckDir @ 4, biblioteca: C: \ Usuários \ x \ AppData \ Local \ Temp \ MSI570C.tmp

Instalador do SSDLife:

Produto: SSDlife Pro - Erro 1723. Há um problema com este pacote do Windows Installer. Não foi possível executar uma DLL necessária para a conclusão desta instalação. Entre em contato com o pessoal de suporte ou o fornecedor do pacote. Ação WIX_TestVersion, entrada: WIX_TestVersion, biblioteca: C: \ Usuários \ x \ AppData \ Local \ Temp \ MSIA32E.tmp

Pesquisando no erro 1723: Esse erro pode ocorrer se você tiver uma versão desatualizada do Windows Installer

Eu tenho alguns links para o Windows Installer, mas nenhum deles possui o Windows 7 na lista de sistemas operacionais suportados.

https://www.microsoft.com/en-us/download/details.aspx?id=25 e

https://www.microsoft.com/en-us/download/details.aspx?id=8483&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_131Z4ENUS22007

O Windows (7 x64) está atualizado.

Também tentei este Fixit: http://support.microsoft.com/mats/Program_Install_and_Uninstall

Mas não encontrou nenhum problema.

Kedar
fonte
@Serge sim, avast, tentou incapacitante e executar o instalador agora, mas isso não parece ajudar
Kedar
limpe sua pasta temporária e tente novamente.
Moab
@Moab não, isso não ajuda
Kedar
Especifique o sistema operacional onde você observa o problema.
Alexey Ivanov
@Moab todos eles
Kedar

Respostas:

26

Também me deparei com esta questão. A resposta de Alexey Ivanov não me ajudou muito, mas me inspirou a investigar C:\Users\x\AppData\Local\Temp.

Como sempre, as mensagens de erro eram apenas metade úteis. No meu caso, a DLL não estava faltando - o instalador não tinha permissões para acessar a pasta . Não tentei executar o instalador como administrador - isso não fazia sentido para mim, considerando que eu já estava usando uma conta de administrador e esperava que o UAC manipulasse a elevação de privilégios. De qualquer forma, como muitas coisas no Windows, tudo isso é um mistério para mim.

No entanto, depois de ir para Properties > Securitya C:\Users\x\AppData\Local\Temppasta e conceder Everyonea Full controlpermissão, os instaladores anteriores estavam falhando agora funcionavam! Viva! Como Everyonejá tinha Reade Writeacesso, suspeito que Full controltambém tenha adicionado a Executepermissão necessária .

O que me pergunto, agora, é como isso aconteceu em primeiro lugar, e quais devem ser as permissões corretas nesse diretório.

Dmitry Minkovsky
fonte
1
Isso resolve meu problema! Mas acho que é um problema de segurança conceder acesso total a 'Todos' à pasta temporária de um usuário. Acabei de me conceder acesso total e isso funciona. Por padrão, o diretório tinha apenas 'Permissões Especiais' para o usuário.
Kedar
Sim, isso faz mais sentido do que dar permissão para Everyone:-). Enfim, gostaria de saber qual pode ser a causa subjacente desse problema. Eu estava tendo problemas com vários instaladores, incluindo o instalador do iTunes - um instalador muito popular! Eu me pergunto o que aconteceu que quebrou as permissões nesse diretório.
Dmitry Minkovsky
Verifiquei outras contas limitadas / de administrador na mesma máquina e todas parecem ter as permissões definidas corretamente.
Kedar
Isso não funcionou para mim (Windows 7, 32 bits). Isso fez . Meu erro, no entanto, foi "Há um problema com este pacote do Windows Installer. Um programa executado como parte da instalação não foi concluído conforme o esperado. Entre em contato com a equipe de suporte ou o fornecedor do pacote".
Alderalmind
Isso não funcionou para mim, embora os sintomas fossem semelhantes. Acabou sendo uma instalação PIP conflitante. Isso me corrigiu: stackoverflow.com/a/23350061/797945
Jagu
8

Uma solução simples é executar o shell de comando como administrador (basta pesquisar cmd.exe e clicar com o botão direito do mouse-> executar como administrador) e, em seguida, ir para o local do pacote MSI e executar msiexec /i packagename.msi. Funcionou para mim.

Marco Lanzetta
fonte
1
Não é uma solução alternativa (não instala todos os softwares corretamente), e ele não funciona (para este problema específico)
Kedar
Um pequeno erro: Aqui está o comando certomsiexec /i packagename.msi
Esta solução funciona perfeitamente e é melhor do que conceder permissões totais da pasta Temp para todos apenas para um instalador. (Certifique-se de ler o segundo comentário para a sintaxe correta.)
Gaurav Kumar
+1 Esta solução também deve ser incluída na resposta escolhida acima. Essa resposta escolhida deve ser o último recurso de todos.
precisa saber é o seguinte
1

Seu sistema deve estar com falta de uma DLL necessária.

Nos dois casos que você descreve, o Windows Installer tentou executar uma ação personalizada localizada em uma DLL. Esses arquivos .tmp: C:\Users\x\AppData\Local\Temp\MSI570C.tmpe C:\Users\x\AppData\Local\Temp\MSIA32E.tmpsão realmente arquivos DLL extraídos do MSI.

Mas, por algum motivo, não conseguiu carregar a DLL.

O mais importante é descobrir qual DLL está faltando. Enquanto a mensagem de erro estiver na tela, vá para o diretório temporário e verifique se o arquivo DLL temporário ainda existe. Se estiver lá, copie-o com extensão DLL. Em seguida, para descobrir qual DLL dos ausentes está faltando, você pode usar o depends.exeutilitário do Visual Studio.

Se o arquivo temporário já estiver removido, a única maneira de obter a DLL é extraí-la do pacote, da Binarytabela.

Eu tenho dois candidatos possíveis mais prováveis: o tempo de execução do Visual C ++ está ausente ou o tempo de execução do .Net está ausente. No entanto, é apenas um palpite…

Alexey Ivanov
fonte
Eu vejo apenas o log de erros sendo criado no diretório temp. Nada mais. Mas, analisando a extração de arquivos do instalador, tentei o comando msiexec para extrair o Python e agora todos os arquivos estão disponíveis como seriam em uma instalação normal. Exceto que não vejo nenhuma entrada na lista de software instalado. Adicionando python a caminho, ele funciona como esperado ...
Kedar
1
Eu acho que isso acontece rápido demais para perceber. Sim, você pode extrair arquivos do pacote do Windows Installer, mas ele não executará o registro do programa porque o produto não está instalado (do ponto de vista MSI). Esses arquivos DLL tmp não fazem parte da imagem de instalação, são auxiliares executados durante a instalação. Para obtê-lo, você pode usar a ferramenta Orca ou descompilar o msi com o WiX; no entanto, você já possui o Python.
Alexey Ivanov
Acho que posso viver sem ter o software registrado. Comando completo: msiexec / a python.msi / qb TARGETDIR = "C: \ install_path"
Kedar
@ 101 Se for o caso, o instalador está com problemas, quero dizer que é um bug: o instalador não deve depender de software adicional, incluindo o tempo de execução do MSVC - deve ser independente. Se precisar do MSVC 2008 ou 2010, esses pacotes deverão ser instalados ao longo do produto (contidos no próprio instalador).
Alexey Ivanov
-1

Nenhuma dessas soluções funcionou para mim, no entanto, quando fui diretamente para a pasta de download, clique com o botão direito do mouse no ícone da instalação que gostaria de executar e clique em "executar como administrador", instalado sem mais mensagens de erro.

girlymomma88
fonte
Os instaladores MSI não têm essa opção.
Kedar