Pergunta

Estou construindo uma instalação usando o VS 2003. A instalação tem uma planilha do Excel e duas bases de dados Access. Eu preciso para forçar os arquivos de acesso para carregar independentemente da data de criação / modificação das bases de dados existentes no computador do usuário. Eu uso atualmente ORCA à força em um número de versão sobre os dois arquivos, mas gostaria de encontrar uma solução mais simples, mais elegante (mão editar um arquivo .msi não é algo que eu vejo como "melhor prática".

Existe uma maneira de adicionar um número de versão para os bancos de dados usando Access que passaria então a ser utilizados na instalação?

Existe uma maneira melhor para mim fazer isso?

Foi útil?

Solução

@LanceSc

Eu não acho que a tabela MsiFileHash vai ajudar aqui. Veja este excelente post por Aaron Stebner. A maioria data de modificação provável última de banco de dados Access no computador cliente será diferente a partir de sua data de criação. Windows Installer irá assumir corretamente que o arquivo foi alterado desde a instalação e não substituí-lo.

O caminho certo para resolver isso (como questão autor apontou) é definir campo Versão na tabela de arquivo.

Infelizmente, projetos de instalação em Visual Studio são muito limitados. Você pode criar simples script VBS que modificar os registros na tabela de arquivos (usando SQL), mas eu sugiro olhar ferramentas alternativas de configuração de autoria vez, como WiX , InstallShield ou sábio. WiX na minha opinião é o melhor.

Outras dicas

Já que parece que você não tem recursos adequadamente sob controle de versão, você já tentou alterar a propriedade REINSTALLMODE?

IIRC, no valor padrão de 'omus', é a bandeira 'o' isso só permitindo a instalação se você tiver uma versão mais antiga. Você pode tentar mudar isso 'o' a 'e'. Esteja avisado que este irá substituir arquivos perdidos, antigos e igualmente versionadas.

manualmente adicionando em versões era o caminho errado para começar, mas isso deve garantir que você não tem que bater manualmente os números de versão para levá-los a instalar.

Olhe em Eventos construir para o seu projeto. Pode ser possível para acelerar as versões dos arquivos durante um evento de compilação. [Só não citar-me sobre isso]. Eu não tenho certeza se você pode ou não, mas isso seria o lugar que eu iria começar a investigar em primeiro lugar.

Você deve preencher o MsiFileHash mesa para esses arquivos. Olhada WiFilVer.vbs thtat faz parte do Microsoft Platform SDK para ver como fazer isso.

A minha outra sugestão seria a de olhar para WiX em vez de Visual Studio 2003 para fazer instalações. Visual Studio 2003 tem muito limitado suporte MSI e você pode acabar gastando muito tempo lutando contra isso, ao invés de ficar trabalho útil don.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top