WiX mudanças necessárias para agilizar NET 3.5 instalação para o Vista (e acima) máquinas

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

Pergunta

Nós decidimos tomar a mergulhar e exigem que nossos usuários têm .NET 3.5 instalado antes de poderem utilizar o nosso centro de mídia plug-in.

Eu quero certificar-se da experiência de instalação é tão suave quanto possível e que os nossos estadias instalador pequeno.

Que mudanças eu preciso fazer para o meu WiX arquivo para suportar os seguintes cenários? Exemplos de código seria muito apreciado.

  • O usuário tem o .NET Framework 3.0 instalado, instalação interativa.

comportamento desejado : O usuário é solicitado com uma janela que diz que ela precisa de uma nova versão do quadro, se ela aceita, dotNetFx35setup.exe (2,7 MB) é baixado, e depois executado. Finalmente, a instalação prossegue.

  • O usuário tem framework .Net 3.0 instalado, instale não-interativo.

Fundo : Para facilitar as atualizações automáticas de dentro media center, podemos executar "msiexec.exe / qb / i mediabrowser.msi" se um usuário optar por atualizar uma versão existente.

comportamento desejado : O usuário é solicitado com uma janela que diz que ela precisa de uma nova versão do quadro, se ela aceita, dotNetFx35setup.exe (2,7 MB) é baixado, e depois executado. Finalmente, a instalação continua em silêncio.

Existem outros projetos de código aberto que implementam algo nesse sentido?

questão relacionada : É . NET 3,5 um pré-requisito razoável para um plug-in media center?

Foi útil?

Solução 4

A partir Rob Mensching o desenvolvedor WiX chumbo: este é um cenário chave para Gravar (o para-ser- desenvolvido WiX conjunto de ferramentas bootstrapper.)

Então, não, não há nenhuma construído em forma de stramline o processo com WiX puro. Você pode escrever seu própria bootstrapper embora.

Outras dicas

Acredito que a instalação .NET cai sob as responsabilidades de um bootstrapper setup.exe, antes de seu msi é lançado. WIX não (ainda) tem a sua própria maneira de gerar um bootstrapper (ou se isso acontecer, ele não está documentado no wix.chm). Em vez disso, você pode fazer uso da tarefa GenerateBootstrapper msbuild para gerar um setup.exe. Dê uma olhada no tópico " Como instalar o .NET Framework Usando um Bootstrapper " na documentação do Wix. Para instalar o .NET 3.5 SP1 por download, o arquivo msbuild pretende:

<Project ToolsVersion="3.5"
   xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
           <ProductName>Windows Installer 3.1</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
           <ProductName>Microsoft DotNet Framework 3.5 SP1</ProductName>
        </BootstrapperFile>
    </ItemGroup>

    <Target Name="SetupExe">
        <GenerateBootstrapper
            ApplicationFile="myproduct.msi"
            ApplicationName="myproduct"
            BootstrapperItems="@(BootstrapperFile)"
            Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"
            OutputPath="path/to/put/setup/"
            Culture="en"/>
    </Target>

</Project>

Se você salvar o acima em um arquivo setup.msbuild, você pode construir a sua configuração invocando

C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe setup.msbuild

Você também pode instalar o .NET a partir do seu CD de instalação em vez de baixá-lo. Basta adicionar ComponentsLocation="Relative" aos atributos de GenerateBootstrapper.

dotNetInstaller suportes tudo isto

Você vai precisar usar um bootstrapper para alcançar este objetivo. Microsoft Installer não permitirá que você para lançar outro instalador, uma vez que já está em execução. Há um gerador de inicialização que você pode usar a partir de arquivos msbuild incluído no Visual Studio, ou você pode olhar para muitas das opções de código aberto.

dotNetInstaller é um opções populares. E "Burn" é o nome da próxima ferramenta na WiX para esta tarefa. Mas, ainda é conceito-ware para agora.

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