2011-01-13 5 views
9

Ich habe Code/support eine Anwendung auf .NET-Framework, die immer auf .NET ausgeführt hat. 2. In diesem Jahr aktualisieren wir die Anwendung für die Verwendung von .NET 3.5 (oder 4?).Wie kommt es, dass das .NET Framework 3.5 Offline-Installationsprogramm 200 MB größer ist als das .NET 4 Offline-Installationsprogramm?

Bei der Vorbereitung für diese Änderung haben wir festgestellt, dass das Offline-Installationsprogramm (für unseren Kundenstamm erforderlich) für .NET 3.5 200 + MB größer ist als das .NET 4-Offline-Installationsprogramm.

Hier sind meine Fragen.

Warum ist der dotnet 3.5 Installer so viel größer als der 4 Offline Installer?

Können wir .NET 3.5 aber .NET verteilen? 4. Ist .NET 4 abwärtskompatibel? Angenommen, dass .NET 4 die einzige installierte .NET-Anwendung war, die noch auf frühere Frameworks abzielt?

Wenn unsere Anwendung für x86-CPU kompiliert wird (anstatt irgendeine CPU), müssen Sie noch das x64/x86-Client-Profil verteilen oder können wir nur das x86-Client-Profil verteilen? Mit anderen Worten, können wir das x86-Client-Profil verteilen, obwohl es auf x64-Maschinen installiert wird, wenn unsere App für x86-Ziel-CPU kompiliert wird? Irgendwelche Risiken oder Herausforderungen dafür?

Das Problem ist, dass, wenn wir unsere App auf Ziel .NET 4 aktualisieren, gibt es viele Anwendungsserver, die wir auch aktualisieren müssen, die eine Reihe anderer Anwendungen betrifft. Irgendwelche Gedanken?

Seth

+1

gute Frage, ich fragte mich das gleiche selbst :) – Tom

Antwort

3

.NET 3.5 ist vollständig rückwärtskompatibel mit .NET 3.0 und .NET 2.0 - wie gut es somit alle diese zwei früheren Versionen enthält. .NET 4.0 hingegen startet von Grund auf neu und kann veralteten/unnötigen Code verwerfen. Das bedeutet auch, dass .NET 4.0 den .NET 3.5-Code nicht unbedingt unverändert ausführen kann - es gibt noch einen anderen SO answer on some of the breaking changes there.

+0

Dies ist nicht genau, es gibt keine separaten Versionen der Baugruppen. Alle Basis-Assemblies von 2.0 bis 3.5 SP1 haben tatsächlich Assembly-Version 2.0.0.0 –

+1

@Hans. Deshalb habe ich gesagt, dass 3.5 alle vorherigen Versionen enthält (die Version des Frameworks hat wenig mit den Assembly-Versionen zu tun) – bdonlan

8

Es ist wegen der Voraussetzungen. Das .NET 4.0-Installationsprogramm erfordert die Zielmaschine

  • Server 2008 oder Win7
  • Der 3.5 SP1 Installer

    • XP SP3
    • Vista SP1
    • Server 2003 SP2 aktualisiert werden soll viel nachsichtiger, kann es sogar auf der ursprünglichen Version von XP laufen. Dazu müssen Updates vieler zentraler Windows-Komponenten hinzugefügt werden. Ein wesentlicher Teil dieses 231 MB Installers sind keine .NET Komponenten.

      Bemerkenswert ist auch, dass in .NET 4.0 der Unterschied zwischen dem Client-Profil und der Vollversion weitgehend verschwunden ist. Die Vollversion ist nur 15% größer, das Targeting auf das Clientprofil ist nicht sinnvoll.

    Verwandte Themen