Pergunta

Eu tenho um arquivo .ini com configuração.Eu preciso verificar se existe em nova instalação para evitar a criação novamente.Além de se o novo .ini tiver novos campos adicionar ao arquivo existente.

Foi útil?

Solução

Não instale um arquivo ini como um arquivo, mas converter as entradas em entradas de tabela inifil . Isso permite que todas as alterações no arquivo INI sejam tratadas como "Unidades de Alterações Atômicas" que permitem mesclagem adequada e reversão via mecanismo de MSI integrado. Você evita toda a complexidade de ação personalizada.

Como Chris aponta em seu principal comentário de atualização: faça as coisas da maneira certa no Wix / MSI e você evita muitos problemas que começam a aparecer quando os requisitos alteram ou atualizações são complicadas. Atualizações inifuras implementadas da maneira certa são robustas e simples de lidar.

no wix você usa o elemento inifile Para conseguir isso. Todas as capacidades de mesclagem, suporte de reversão e manuseio avançado de arquivos ini é gratuito. Tudo o que você precisa fazer é definir o que precisa ser adicionado ou modificado no arquivo INI durante sua instalação. Também será criado se não estiver lá em primeiro lugar.

Usando o elemento inifil pode parecer mais difícil do que é. Aqui está uma amostra . Você também pode dar uma olhada no tutorial wix bem conhecido aqui .

Todos os MSI-especialistas continuam repetindo este conselho: Nunca use uma ação personalizada para alterar um sistema se houver construções MSI integradas equivalentes.

Outras dicas

set neveroverwrite="sim" no componente do arquivo .ini e, em seguida, manipule a atualização por meio de uma ação personalizada.

editar : Geralmente é muito melhor usar a tabela inifile como explicado na minha resposta desde que você recebe rollback e mesclar capacidades . No entanto, algumas pessoas preferem o arquivo INI instalado como um arquivo para Permitir fácil modificação do arquivo fora do arquivo MSI . Embora não seja preferível, isso permite que as pessoas "hotfix" o arquivo INI diretamente no local da mídia de instalação. As equipes podem usar isso para que o instalador pegue o mais recente INI do desenvolvimento. Existem problemas técnicos com isso que podem ser tratados por meio de uma ação personalizada (mais significativamente os problemas de substituição de arquivos na instalação). Também é possível que um arquivo ini possa exibir elementos não padrão e formatação que não se encaixa na tabela inifil (rara, mas possível - pessoas com sentido, então use uma extensão de arquivo diferente da INI) . Como já explicado, gostaria de aconselhar fortemente contra a atualização de arquivos ini através de sua própria ação personalizada, a menos que você esteja fazendo algo muito especial - isso é realmente necessário. É complicado implementar e obter direito.

Eu sugiro ter 2 arquivos ini.Um que o instalador possui e que o aplicativo / usuário possui.O instalador sempre pode sobrescrever seu arquivo ini e nunca se preocupar em pisar nos dados do usuário.

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