O que é um bom utilitário gratuito para criar um executável de extração com uma versão arquivo incorporado? [fechadas]
-
02-07-2019 - |
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.
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
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).