2010-06-30 24 views
12

Ich habe ein seltsames Problem festgestellt. Ich habe "Visual Studio 2010 Ultimate" installiert. Während der Installation wurde gezeigt, dass .NET 4.0 erfolgreich installiert wurde. Während der Installation einiger anderer Software. Sie beklagen, dass .NET 2.0 fehlt und bitten mich, es zu installieren.Enthält .NET 4.0 .NET 2.0 nicht?

Wie ist es möglich? .NET 4.0 muss .NET 2.0 richtig enthalten?

EDIT:

Nun, ich bin verwirrt. Danach ist http://en.wikipedia.org/wiki/File:DotNet.svg CLR Teil von .NET 2.0. Bei der Installation von .NET Framework 4.0 wird der gesamte Stack installiert. Dazu gehört auch ein .NET 2.0. Bitte lösche diese Verwirrung.

+1

Mit welchem ​​Betriebssystem arbeiten Sie? Vista wird standardmäßig mit .NET 2.0 und Windows 7 mit .NET 3.5 SP1 geliefert. –

+0

"Must" ist ziemlich eine Annahme zu machen. .Net 2.0 enthielt .Net 1.0 nicht, erinnern Sie sich? –

Antwort

13

Nr .NET 4.0 ist eine eigenständige CLR, ist es nicht, basierend auf 2,0, im Gegensatz zu 3.0 und 3.5

0

Wenn ich nicht misstaken 2010 Zielen .NET 4.0 Framework. Scheint so, als ob du das .Net 2.0 Framework auf deinem Computer vermisst hast.

0

soweit ich die CLR v2.0.50727 wissen arbeitet über v4.0.30319

0

Ja und nein - Sie können .NET-2-Code auf der .NET-4-Laufzeit laufen, aber sie sind separate Runtime-Engines.

Je nachdem, wie das Installationsprogramm nach .NET sucht, muss es 4 nicht erkennen oder es als falsch ablehnen: Wie immer ist es am sichersten, Code in der exakten Umgebung auszuführen, in der er entwickelt wurde.

2/3.5 ist eine parallele Installation. Ich schlage vor, Sie installieren es einfach - es sollte Ihnen keine Probleme bereiten.

8

.NET 4.0 ist eine neue Version der Laufzeit, es ist unabhängig von .NET 2.0.

Neue Version des Frameworks umfasst nicht die vorherigen Versionen, sie sind als spezifische Version mit einem spezifischen Feature-Set erstellt. .NET 4.0 hat eine neue Laufzeit und eine neuere BCL (Basisklassenbibliothek). Die BCL hat im Wesentlichen alle die gleichen Typen wie die .NET 2.0/3.0/3.5 BCL (wenn auch mit möglichen brechenden Änderungen) und einige neue Sachen. Die beiden Framework-Versionen (v2.0 und v4.0) laufen nebeneinander.

Die Tatsache, dass Sie .NET 2.0 nicht installiert haben, ist beunruhigend, da es über den Windows Update-Dienst verteilt wird. Welches Betriebssystem verwenden Sie?

+0

Windows XP ____ – pecker

+0

Ist dies in einer Unternehmensumgebung? Ich würde herunterladen und installieren Sie das .NET Framework 3.5, die Laufzeitversion v2 enthält, sowie die v3.5 BCL http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A- 413D-8319-81DA479AB0D7 & displaylang = de –

4

Wie bereits erwähnt, hat .net 4.0 eine neue CLR, die sich von der .net 2.0 CLR unterscheidet.

Standardmäßig versucht eine Anwendung, auf der CLR zu laufen, für die sie erstellt wurde.

Sie die applications.exe.config Datei mit dem <SupportedRuntime> element ändern kann explizit dem System mitzuteilen, welche die Anwendung unterstützt Laufzeiten (Die Reihenfolge gibt die Vorliebe):

<configuration> 
    <startup> 
     <supportedRuntime version="v2.0.50727"/> 
     <supportedRuntime version="v4.0.30319"/> 
    </startup> 
</configuration> 

(Natürlich, wenn es Ihr ist etwas in App, die abhängig von etwas in .net 2.0 ist, die geändert hat, dann wird dies immer noch fehlschlagen)

Leider, wenn Ihre Anwendung Installationist fehlgeschlagen, das ist, weil das Installationsprogramm explizit überprüft, dass .net 2.0 existiert eher als Version > = 2,0, Wenn dies der Fall ist, könnten Sie versuchen, zu suchen.Zip-Downloads statt Installer, aber abgesehen davon, dass es nicht viel zu tun gibt, abgesehen von der Installation von .net 2.0, werden Side-by-Side-Installationen mehrerer Versionen vollständig unterstützt.

5

Das Problem ist, gibt es zwei "Dinge" wenn Sie sich beziehen auf .NET 2.0 oder .NET 4.0.

Es stimmt, dass:

  • die Bibliothek .NET 4.5 Framework-Klasse
  • alles enthält von der .NET Framework-Klassenbibliothek
  • enthält alles, was aus der Bibliothek .NET 3.5 SP1 Framework-Klasse
  • enthält alles aus der .NET 3.0 SP2 Framework-Klassenbibliothek
  • enthält alles aus der .NET 2.0 SP2 Framework-Klassenbibliothek
  • enthält alles, was aus der Bibliothek .NET 1.1 SP1 Framework-Klasse

ein hilfreiches Diagramm von Microsoft verwenden .NET Framework Versions and Dependencies: enter image description here

Das Problem ist, dass der Rahmen aus dem Runtime unterscheidet. Es gibt sechs Versionen von .NET Framework-, aber nur vier Versionen von .NET CLR (Common Language Runtime):

  • CLR 1.1: Schiffe mit .NET Framework 1.1
  • CLR 2.0 : Schiffe mit .NET Framework 2.0 SP2, 3.0 SP2, 3.5 SP1
  • 4.0 CLR: Schiffe mit .NET Framework 4
  • CLR 4.5: Schiffe mit .NET Framework 4.5

Das heißt, wenn Sie das .NET Framework 4, installieren Sie immer noch die Klassen verwenden können Sie 2. in .NET verwendet zurück Aber wenn Ihre Anwendung erfordert die Version 2 des CLR es nicht funktionieren - denn das CLR 2.0 ist nicht mit .NET Framework 4.0 installiert.

+0

Nur aus Interesse - woher kam dieses Bild? Es erscheint nicht auf dem Link. – Kye

+1

@Kye Früher war es dort. Microsoft hat es seither entfernt. [Aber sie können es nicht von archive.org entfernen!] (Https://web.archive.org/web/20120201195011/http://msdn.microsoft.com/en-us/library/bb822049 (v = VS .110) .aspx) –