Benutzer mit den meisten Antworten
Zielframework 3.5 SP1 aber für 4.0 entwickelt

Frage
-
Hallo,
mit Enttäuschung habe ich heute festgestellt, dass mein Projekt eigentlich für .NET 3.5 SP1 vorgesehen sein sollte. Entwickelt habe ich aber bisher für 4.0
Ich dachte mir dass ich das auf der Eigenschafts-Seite ändern könnte. Da findet sich ja die Auswahlmöglichkeit "Zielframework". SO einfach scheint das aber nicht zu sein. Eine testhalber Änderung an dieser Stelle zeigt den Hinweis, dass man "manuell" Änderungen durchführen soll.
Die Erklärungen seitens MS wie man dabei vorgeht, führten aber nicht zum Erfolg. Ich bekomme beim Start eine Exception:
Das Objekt des Typs "System.Windows.Forms.SplitContainer" kann nicht in Typ "System.ComponentModel.ISupportInitialize" umgewandelt werden.
Auslösende Zeile entstammt dem Designer:
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
Mehr noch: Ich habe ein Testprojekt mit einem leeren(!!) Fenster erstellt und das Gleiche versucht. Da klappt ja nichts mehr. Z.b. gibt es den Fehler bei der "using" Direktive:
using System.Windows.Forms;
Der Typ- oder Namespacename "Windows" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?)
Sind das derart gravierende Änderungen zwischen 3.5 und 4.0 ? Kann ich mir kaum vorstellen. Irgendwas anderes mache ich da noch falsch.
Bevor es Missverständnisse gibt: Ja, das einfachste (und vernünftigste) wäre die Installation des .NET 4.0 was aber momentan nicht möglich ist. Daher muss ich das 3.5 SP1 - fähig machen :(
Kann jemand helfen?
Gruß Ron
Antworten
-
Hallo Ron,
viel hat sich bei Windows Forms nicht mehr getan, aber Du hast gerade eine Stelle erwischt,
wo man in 4.0 ein wenig nachgebessert hat.Der SplitContainer bis 3.5 implementiert die Schnittstelle ISupportInitialize noch nicht.
Das einfachste wäre hier:
Entferne die beiden dazugehörigen Zeilen in InitializeComponent, einmal BeginInit und später EndInit.
Dabei sollte der Designer nicht geöffnet sein, da der sich daran verschlucken wird.
Danach kompilieren und es sollte wieder funktionieren.Wenn die using Anweisung für System.Windows.Forms angemeckert wird:
Schau ob die entsprechende Assembly noch eingebunden ist, ansonsten via Verweise hinzufügen.Gruß Elmar
- Als Antwort markiert ron61 Dienstag, 7. Februar 2012 22:40
Alle Antworten
-
Nun weiß ich auch, was ich falsch machte, bzw. unterließ: Es fehlten nach Änderung in neues Zielframework in den Verweisen auf Assemblys einige. Nachdem diese erneut eingefügt wurden, lief das Testprojekt. Etwas schwieriger war die Änderung am eigentlichen Hauptprojekt: Obige beschriebene Exception bezog sich auf einen Splitter, in dem entsprechende Panels mit der gesamten Oberfläche eingelagert sind.
Spaßhalber entfernte ich diesen (und damit alle anderen visuellen Komponenten). Über das Menü "rückgängig" fügte ich diese wieder ein. Überraschung: Nun folgte keine Exception im Code des Designers mehr !
Lediglich in den Projekteigenschaften / Einstellungen musste ich diese ebenfalls löschen, und das Debugging -zwar im Ergebnis fehlerhaft- starten. Anschließend die "Einstellungen" neu eingeben und voila...
Auf einem Testrechner mit fehlendem .NET 4.0 läuft es nun. Trotzdem fühle ich mich nicht so ganz wohl dabei. Wenn es ergänzende Tips gibt bin ich dankbar.
Gruß Ron
-
Hallo Ron,
viel hat sich bei Windows Forms nicht mehr getan, aber Du hast gerade eine Stelle erwischt,
wo man in 4.0 ein wenig nachgebessert hat.Der SplitContainer bis 3.5 implementiert die Schnittstelle ISupportInitialize noch nicht.
Das einfachste wäre hier:
Entferne die beiden dazugehörigen Zeilen in InitializeComponent, einmal BeginInit und später EndInit.
Dabei sollte der Designer nicht geöffnet sein, da der sich daran verschlucken wird.
Danach kompilieren und es sollte wieder funktionieren.Wenn die using Anweisung für System.Windows.Forms angemeckert wird:
Schau ob die entsprechende Assembly noch eingebunden ist, ansonsten via Verweise hinzufügen.Gruß Elmar
- Als Antwort markiert ron61 Dienstag, 7. Februar 2012 22:40
-
[...]Entferne die beiden dazugehörigen Zeilen in InitializeComponent, einmal BeginInit und später EndInit.[...]
Hallo Elmar,
ja, das hat der Designer Code - Automat wohl selbstätig gemacht, als ich Löschen/Einfügen gemacht habe. Denn nun sind sie weg :))
Danke für die zusätzlichen Infos.
Gruß Ron