O que é um bom utilitário gratuito para criar um executável de extração com uma versão arquivo incorporado? [fechadas]

StackOverflow https://stackoverflow.com/questions/151403

Pergunta

De acordo com as respostas para esta questão , não posso incorporar uma versão do arquivo no meu arquivo .msi.

O instalador que eu dou o cliente precisa ter uma versão do arquivo.

Então, o que eu quero fazer é criar um executável de extração automática que contém o arquivo msi eo setup.exe gerado pelo Visual Studio, e colocar a versão do arquivo nessa auto-extraível executável em seu lugar.

Por isso, eu preciso de um utilitário para criar executáveis ??auto-extraíveis que suporta a incorporação de uma versão do arquivo em sua saída. Ele também precisa apoiar automaticamente executar um arquivo após a extração, para que eu possa iniciar o instalador verdadeira automaticamente. Seria bom se fosse scripts.

Tudo que eu poderia encontrar era este , que parece ótimo, mas eu prefiro muito mais uma alternativa livre.

Alguém tem alguma sugestão?

Editar: Para esclarecer, eu realmente não estou olhando para criar um instalador - Eu já tenho um projeto de instalação VS. Eu só quero um auto-extrator (como WinZip pode criar). Assim, o usuário mouses sobre Setup-Blorgbeard2008.exe, vê "Versão: 1.0.0.0". Usuário DoubleClick para ele, silenciosamente extratos setup.exe e setup.msi para uma pasta temporária, em seguida, executa setup.exe. Usuário então vê tela do instalador normal e continua como normal.

Outro Edit: Yay, eu não preciso de uma auto-extractor mais, desde a minha outra pergunta já foi respondida. Isso faz com que toda essa questão praticamente irrelevante. É faria ainda ser bom ser capaz de distribuir apenas um arquivo, em vez de setup.exe e setup.msi.

Foi útil?

Solução

NSIS pode fazer isso.

Uma parte do nosso ambiente de compilação é um script que informações sobre a versão saídas para um arquivo "header" que as nossas fontes de script NSIS. Você deve ser capaz de usar algo semelhante para incorporar as informações de versão e você pode certamente obter NSIS para executar um arquivo após a extração.

Na verdade, como NSIS cria o pacote de instalação ... você pode ser capaz de simplificar a sua abordagem muito.

Outras dicas

Um pouco surpreso que ele ainda não está aqui listados: IExpress é uma ferramenta simples que vem com o Windows e pode ser usado para criar instaladores de extração automática.

Quando você baixar o Windows SDK, há MSIStuff.exe e Setup.exe para o qual MS fornece o código-fonte para compilar. MSIStuff vai "coisas" da MSI você dá-lo em Setup.exe. Setup.exe pode então ser distribuído.

Mais informações em http://support.microsoft.com/kb/888473

Contras:

  • Você vai ter que recompilar Setup.exe com a versão do seu produto cada vez que há uma nova versão do seu produto (MSI).
  • Não sei o que licenciar a fonte Setup.exe é distribuído sob.

Na verdade, eu acabei usando NSIS para esta versão particular, desde que eu precisava para agregar alguns outros instaladores também.

Para referência, aqui está o script que eu usei:

VIProductVersion              "1.0.0.0" ; set version here
VIAddVersionKey "FileVersion" "1.0.0.0" ; and here!
VIAddVersionKey "CompanyName" "MyCompany"
VIAddVersionKey "LegalCopyright" "© MyCompany"
VIAddVersionKey "FileDescription" "Installer for MyProgram"
OutFile MyProgram-Setup.exe

SilentInstall silent

Section Main    
    SetOutPath $TEMP
    SetOverwrite on
    File SharedManagementObjects.msi
    File SQLSysClrTypes.msi
    File Release\Setup.exe
    File Release\Setup.msi
    ExecWait 'msiexec /passive /i "$OUTDIR\SharedManagementObjects.msi"'
    ExecWait 'msiexec /passive /i "$OUTDIR\SQLSysClrTypes.msi"'
    Exec     '"$OUTDIR\Setup.exe"'
SectionEnd

DotNetZip pode produzir um arquivo auto-extraível, que inclui um número de versão que aparece em um Windows Explorer passe o rato por cima. O SFX também inclui o nome do produto, descrição, versão do produto, e os direitos autorais que aparece em uma visão Propriedades / Detalhes no Windows Explorer.

O SFX pode executar um comando que você especificar depois extrato.

Criação do SFX podem ser script de PowerShell, ou você pode escrever um programa para fazê-lo, usando VB.NET, C #, VBScript ou JavaScript, etc.

Para obter o material número da versão, você precisa de pelo menos v1.9.0.26 de DotNetZip.

INE parece uma boa escolha

inno-setup

definir a directiva VersionInfoVersion ao seu número de versão binária, por exemplo.

VersionInfoVersion = 1.1.0.0

este aparecerá em mouseover texto e propriedades

Experiência em andamento aqui:

Pop-up informações Versão: http://screencast.com/t/LVqvLfxCj3g

A partir do Visual informações Assembléia Estúdio: http://screencast.com/t/fqunlMNh13

Instalado com arquivo MSI velho liso.

Ao adicionar o "Version: 1.5.0" texto na propriedade Descrição da configuração do projeto, o número da versão também mostra sobre o arquivo MSI assim: http://screencast.com/t/A499i6jS

Eu geralmente só renomeie o arquivo MSI, como DataMonkey_1_5_0.msi para minhas próprias finalidades.

FYI usando um auto-extrator DotNetZip não faz sentido se você estiver usando o setup.exe bootstrapper para verificar .NET está instalado (DotNetZip Self-Extractor requer .NET 2.0).

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