Hallo zusammen,
wir bei uns ein Thema, welches zu Diskussionen führt. Dabei geht es um folgendes:
Durch die Installation von VS2012 wird ja ebenfalls das FW4.5 installiert. Dieses ersetzt Teile des bisherigen FW4.0 (In-place upgrade).
Wenn wir nun Anwendungen entwickeln, welche ebenfalls noch Win-XP unterstützen sollen, können wir dort max. auf das FW4.0 zurückgreifen, richtig?
Stellen wir nun im VS2012 das Zielframework auf 4.0 ein und kompilieren auf unseren Entwicklungsrechnern, führt dieses dann zwangsläufig zu Problemen unter XP? Das FW4 auf dem Entwicklungsrechner ist ja im Prinzip nicht mehr das selbe wie auf einem XP-Zielrechner...
Vielleicht kann jemand von Euch etwas Licht ins Dunkle bringen.
Die 4.0 DLLs bleiben auch bei einer 4.5 Installation erhalten - auch, wenn hier eine Aktualisierung stattfand.
Wenn Du also 4.0 als Ziel FW einstellst, so ist hier nichts von 4.5 enthalten. Oder was ist die Frage?
Hallo Mexxchen,
schau dir mal den Ordner C:\Windows\Microsoft.NET an, dort findest du für jede .net-Version Verzeichnis. Dadurch sind die referenzierten Assemblies auch sauber getrennt.
Von VS werden (für Intellisense, etc) die Assemblies aus C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework verwendet (diese bestehen nur aus Dummy-Methoden und Eigenschaften) und auch dort gibt es für jede Version ein eigenes Set an Assemblies.
Kurz: es gibt kein Problem.
mfG Gü
Hallo Mexxchen,
[...]Win-XP unterstützen sollen, können wir dort max. auf das FW4.0[...] Richtig, unter XP wird kein FW4.5 unterstützt.
Stellen wir nun im VS2012 das Zielframework auf 4.0 [...] führt dieses dann zwangsläufig zu Problemen unter XP?
Nein, denn wenn dein Zielframework 4.0 ist, wird für die mscorlib, ect auch die 4.0er hergenommen und diese funktionieren unter Windows XP.
Gruß,
Michael
Vielen Dank für Eure Antworten.
Es klang in einigen Berichten und Kommentaren so, dass durch das Update auf FW4.5 Bibliotheken des FW4.0 verändert werden. Die Installation erfolgt auch in das gleiche Verzeichnis unter C:\Windows\Microsoft.NET\Framework.
Wir haben da nur Bedenken, dass Anpassungen an 4.0-Assemblies vorgenommen werden. Diese Änderungen wären ja unter FW4.0 auf XP nicht vorhanden.
Zitat von: Was ist neu im Microsoft .NET Framework 4.5?
.NET 4.5 kann im wesentlichen als ein Add-On zu .NET 4.0 verstanden werden. Allerdings nimmt das Setup von .NET 4.5 auch kleinere Änderungen an der CLR 4.0 vor.Microsoft nennt .NET 4.5 ein "In-Place-Update", d.h.
- .NET 4.5 installiert sich im gleichen Ordner wie .NET 4.0
- Wenn .NET 4.0 schon vorhanden ist, wird dies überschrieben
- Wenn .NET 4.5 deinstalliert wird, wird auch .NET 4.0 deinstalliert
- Die CLR hat in .NET 4.5 die gleiche Runtime 4.0.30319.*. Lediglich die vierte Stelle (Build-Nummer) ist anders
Runtime 4.0.30319.269 -> .NET 4.0
Runtime 4.0.30319.17626 -> .NET 4.5- Eine .NET 4.5-Anwendung wird auf .NET 4.0 laufen, bis ein Feature von .NET 4.5 gebraucht wird
Hallo Mexxchen,
Allerdings nimmt das Setup von .NET 4.5 auch kleinere Änderungen an der CLR 4.0 vor.
Die CLR läuft jedoch lokal auf dem Rechner (hier der Entwicklungsrechner) und bei XP wird die dort installierte CLR (jene von .net 4.0) verwendet. Ist also kein Problem.
mfG Gü
Ich muss mich nochmal kurz zu dem Thema zurückmelden.
Es scheint doch Probleme mit den Frameworks zu geben. Wir haben auf unseren Win7 Rechnern VS2012 und somit auch .NET 4.5. Um von XP bis Win 8 zu unterstützen, kompilieren wir auf .NET 4.
Im Test ist nun ein kurioser Fehler aufgetreten, welcher weder auf unseren Entwicklungsrechnern noch auf Win8 auftritt. Unter Win7 konnte dieser behoben werden, als wir dort .NET 4.5 nachinstalliert haben.
Als Erklärung habe ich folgendes gefunden: Neu in .NET4.5 und Worauf Sie bei .NET 4.5 und .NET 4.0 achten sollten
Ist Euch das bekannt (Auch wenn es schon ne Weile her ist)?
Erklär doch mal, was genau der Fehler ist.
Dann kann man dazu auch was sagen. Oder ist das das bestehende hier aus dem Thread?
Wie dem auch sei: Du solltest sagen, welche Methode oder Konstellation denn Zicken macht.
Dass durch eine ausgetauschte Assembly etwas anders sein kann ist natürlich möglich, da Inplace Upgrade.
Die ursprüngliche Frage war ja damals bei Einführung des neuen Frameworks. Demnach sollte alles glatt laufen.
Ich versuche es mal kurz. Es passiert, wenn man in einem Listview z.B. nach unten scrollt, dann den aktuellen Vorgang abbricht und dann wieder hineinwechselt. Dann kommt die Exception > Fehlermeldung:
System.InvalidOperationException: Cannot call StartAt when content generation is in progress Die kommt wie geschrieben nur auf Rechnern ohne .NET4.5. Ich konnte sie in einer Virtuellen Maschine mit Win7 nachstellen. Als ich dort VS2012 installierte, um zu debuggen, trat sie nicht mehr auf.
Ein Installieren des 4.5er auf den Testrechnern behob ebenfalls den Fehler.
Ich seh aber in den Changes keine Hinweise, dass irgendwas im Hinblick der ListView geeändert worden sein soll.
Ohne Beispiel oder Code kann man Dir nicht weiterhelfen. Könnte genauso ein Programmierfehler sein, der halt erst jetzt unter den Konstellationen auftaucht.
Auf den XP Rechnern ist auch FW 4.0.3 Installiert?
KB2600211: Update 4.0.3 for Microsoft .NET Framework 4 – Runtime Update
FW 4 alleine reicht meist nicht.
Muss ich mal prüfen. Danke für den Hinweis. Das gleiche gilt sicherlich auch für Win 7?
Habe es gerade auf Win 7 getestet. Die Anwendung mit .Net 4 installiert. Der Fehler trat auf. Dann das Update 4.0.3 aus dem Link. Der Fehler ist weiterhin vorhanden. Installation von 4.5 behob den Fehler.
Sag doch mal wovon Du genau sprichst.
Sonst macht das hier weder Spaß noch Sinn.
Das bedeutet aber doch, das Du definitiv etwas benutzt das es nicht im FW 4.0.3 gibt.
Hallo FZelle, hallo Mexxchen,
nicht unbedingt etwas, dass es in 4.0.3 nicht gibt, sondern vielleicht nur etwas, das in 4.0.3 etwas anders implementiert ist als in 4.5. Solche Unterschiede kann es geben, siehe [FAQ] Programm läuft in anderer Umgebung nicht (richtig). Auf jeden Fall scheint es ja reproduzierbar zu sein und das ist schon mal gut. Ich würde wie Abt davon ausgehen, dass es sich einfach um einen Programmierfehler handelt, der unter 4.5 nicht zum Tragen kommt. Oder es ist ein Bug im 4er Framework, der in 4.5 behoben wurde.
Wie dem auch sei, ich würde den Fehler, dort wo er auftritt, ganz normal suchen und versuchen zu beheben, nötigenfalls durch einen Workaround, und mich nicht davon irritieren lassen, dass er unter 4.5 nicht auftritt.
herbivore
Alle Projekte haben als Zielframework .NET 4. In der app.config steht:
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
Würde der Compiler nicht Alarm schlagen, wenn etwas aus dem .NET 4.5 verwendet würde?
Debuggen ist zumindest mit VS2012 nicht möglich. Dazu muss man wohl mit nem sauberen Windows 7, .Net 4 und VS2010 ran.
@Abt: Wie ist Deine Frage gemeint?
Weiß nicht, aber hast Dus nicht gelesen oder nicht verstanden?
4.5 ist ein Inplace-Upgrade. Sprich auch .NET 4.0 DLLs werden - bei Bugfixes - ausgetauscht.
Ergo könntest Du auf einen Bug gestoßen sein, der eben bei 4.5 gelöst wurde.
Da Du aber beharrlich nicht zeigst, was Du tust, können wir nur raten.
Edit: und 4.0 Client ist nicht 4.0 Full.
Das sind zwei paar Stiefel.
Das 4.5 ein Inplace-Upgrade weiß ich und habe es auch im allerersten Post angemerkt.
Das 4.0 Client und 4.0 Full nicht gleich sind, ist mir auch klar. Dennoch werden beide zusammen installiert und wir benötigen für unsere Zwecke auch nur Client.
Ich hatte mir nur erhofft, dass jemand ähnliche Erfahrung gemacht hat.
Code zu zeigen, ist in dem Projekt nicht ganz einfach, bzw. nicht gerne gesehen. Ich werde mich mit meinen Kollegen nach ihrer Urlaubszeit beraten und ggfs. Rückmeldung geben.