Cambios de WiX requeridos para simplificar la instalación de .NET 3.5 para máquinas Vista (y superiores)

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

Pregunta

Hemos decidido dar el paso y exigir que nuestros usuarios tengan instalado .NET 3.5 antes de que puedan usar nuestro complemento de centro de medios.

Quiero asegurarme de que la experiencia de instalación sea lo más fluida posible y que nuestro instalador sea pequeño.

¿Qué cambios debo hacer en mi ¿Archivo WiX para admitir los siguientes escenarios? Los ejemplos de código serían muy apreciados.

  • El usuario tiene instalado .Net framework 3.0, instalación interactiva.

Comportamiento deseado : se le solicita al usuario una ventana que le dice que necesita una nueva versión del marco, si acepta, se descarga dotNetFx35setup.exe (2.7 MB) y luego se ejecuta. Finalmente, la instalación continúa.

  • El usuario tiene instalado .Net framework 3.0, instalación no interactiva.

Antecedentes : para facilitar las actualizaciones automáticas desde el centro de medios, podemos ejecutar "msiexec.exe / qb / i mediabrowser.msi". si un usuario elige actualizar una versión existente.

Comportamiento deseado : se le solicita al usuario una ventana que le dice que necesita una nueva versión del marco, si acepta, se descarga dotNetFx35setup.exe (2.7 MB) y luego se ejecuta. Finalmente, la instalación continúa en silencio.

¿Hay otros proyectos de código abierto que implementen algo en este sentido?

Pregunta relacionada : ¿ .NET 3.5 ¿un requisito previo razonable para un complemento de centro de medios?

¿Fue útil?

Solución 4

De Rob Mensching el desarrollador líder de WiX: este es un escenario clave para Burn (el que debe ser desarrollado el conjunto de herramientas de WiX bootstrapper.)

Entonces, no, no hay una forma integrada de estratificar el proceso con WiX pure. Sin embargo, puede escribir su propio bootstrapper .

Otros consejos

Creo que la instalación de .NET cae bajo las responsabilidades de un bootstrapper setup.exe, antes de que se inicie su msi. WIX no tiene (todavía) su propia manera de generar un bootstrapper (o si lo tiene, no está documentado en wix.chm). En su lugar, puede hacer uso de la tarea GenerateBootStrapper msbuild para generar un setup.exe. Eche un vistazo al tema " Cómo: Instalar .NET Framework con un Bootstrapper " en la documentación de wix. Para instalar .NET 3.5 SP1 mediante descarga, su archivo msbuild desea esto:

<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>

Si guarda lo anterior en un archivo setup.msbuild, puede crear su configuración invocando

  

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

También puede instalar .NET desde su CD de instalación en lugar de descargarlo. Simplemente agregue ComponentsLocation = " Relative " ; a los atributos de GenerateBootstrapper.

dotNetInstaller admite todo esto

Necesitará usar un bootstrapper para lograr esto. Microsoft Installer no le permitirá iniciar otro instalador una vez que ya se esté ejecutando. Hay un generador de arranque que puede usar desde los archivos msbuild incluidos con Visual Studio, o puede ver muchas de las opciones de código abierto.

dotNetInstaller es una opción popular. Y " Grabar " es el nombre de la próxima herramienta en WiX para esta tarea. Pero, por ahora, sigue siendo un software de concepto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top