2009-03-09 8 views
2

Wir haben uns entschieden, .NET 3.5 zu installieren, bevor sie unser Media Center-Plug-in verwenden können.WiX-Änderungen erforderlich, um die .NET 3.5-Installation für Vista (und höher) zu rationalisieren

Ich möchte sicherstellen, dass die Installation so reibungslos wie möglich ist und dass unser Installer klein bleibt.

Welche Änderungen muss ich an meinem WiX file vornehmen, um die folgenden Szenarien zu unterstützen? Codebeispiele würden sehr geschätzt werden.

  • Benutzer hat .Net Framework 3.0 installiert, interaktive Installation.

gewünschte Verhalten: Benutzer mit einem Fenster aufgefordert, die ihr sagt, sie eine neue Version des Frameworks muss, wenn sie akzeptiert, dotNetFx35setup.exe (2,7 MB) heruntergeladen wird, und dann ausgeführt. Schließlich wird die Installation fortgesetzt.

  • Benutzer hat .Net Framework 3.0 installiert, nicht interaktive Installation.

Hintergrund: Um automatische Updates aus Medienzentrum zu erleichtern, können wir ausführen „msiexec.exe/qb/mediabrowser.msi i“, wenn ein Benutzer eine vorhandene Version aktualisieren wählen.

Gewünschtes Verhalten: Benutzer wird mit einem Fenster aufgefordert, dass sie eine neue Version des Frameworks benötigt, wenn sie akzeptiert, dotNetFx35setup.exe (2,7 MB) heruntergeladen und dann ausgeführt wird. Schließlich wird die Installation unbeaufsichtigt fortgesetzt.

Gibt es noch andere Open-Source-Projekte, die etwas in diese Richtung implementieren?

Verwandte Frage: Ist .NET 3.5 a reasonable pre-requisite for a media center plugin?

Antwort

1

Von Rob Mensching die Führung WiX Entwickler: Dies ist ein Schlüssel Szenario für Burn

Also nein, es gibt keinen in Art und Weise aufgebaut ist, den Prozess mit WiX rein stramline (die zukünftig entwickelten WiX-Toolset Bootstrap-Programm.) . Sie könnten jedoch Ihre own bootstrapper schreiben.

2

Ich glaube, die Installation von .NET fällt unter die Verantwortung eines setup.exe Bootstrap-Programm, bevor Sie Ihre msi gestartet wird. WIX hat (noch) keine eigene Möglichkeit, einen Bootstrapper zu erzeugen (oder wenn dies der Fall ist, ist dies in wix.chm nicht dokumentiert). Stattdessen können Sie den Task GenerateBootStrapper msbuild verwenden, um eine setup.exe zu generieren. Schauen Sie sich das Thema "How To: Install the .NET Framework Using a Bootstrapper" in der wix-Dokumentation an. .NET 3.5 SP1 per Download installieren, Ihre msbuild Datei möchte dies:

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

Wenn Sie die oben in einer setup.msbuild Datei speichern, können Sie Ihr Setup erstellen, indem Sie den Aufruf

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

Sie auch .NET von Ihrer Installations-CD installieren können, anstatt sie herunterzuladen. Fügen Sie einfach ComponentsLocation="Relative" zu den Attributen von GenerateBootstrapper hinzu.

+0

was id wirklich tun möchte, ist das Framework Download nur dann, wenn seine fehlende und nicht meine normale Installers 2 megs größer –

+0

AFAIK sein, das ist, was mein Beispiel der Fall ist. –

+0

@wcoenen, yep, das ist ein Schlüsselszenario für Burn (der zu entwickelnde WiX Toolset Bootstrapper). –

1

Sie müssen einen Bootstrapper verwenden, um dies zu erreichen. Microsoft Installer lässt es nicht zu, dass Sie ein anderes Installationsprogramm starten, sobald eines bereits ausgeführt wird. Es gibt einen Bootstrap-Generator, den Sie aus Msbuild-Dateien in Visual Studio verwenden können, oder Sie können sich viele der Open-Source-Optionen ansehen.

dotNetInstaller ist eine beliebte Option. Und "Burn" ist der Name des kommenden Tools in WiX für diese Aufgabe. Aber es ist noch immer Konzept-Ware.

Verwandte Themen