Laden...

VS 2005 Projekt zu VS 2003 Projekt konvertieren??

Erstellt von masmin vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.942 Views
M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren
VS 2005 Projekt zu VS 2003 Projekt konvertieren??

Hallo,

ich hoffe ich bin damit im richtigen Forum. Also ich wollte mal wissen, ob es möglich ist ein C#-Projekt, welches mit VS 2005 Beta 2 erstellt wurde, zu VS 2003 zurück zu konvertieren!?

Mittlerweile bereue ich es schon glatt ein wenig zu voreilig mit VS 2005 gewesen zu sein. Das Framework scheint einfach noch zu buggy zu sein und ich würde liebend gerne im Framework 1.1 weiterarbeiten.

Also, hat jemand eine Idee?

4.207 Beiträge seit 2003
vor 18 Jahren

Hallo,

ich habe mit dem Konverter 2003 -> 2005 noch nicht viel zu tun gehabt, könnte mir aber gut vorstellen, dass der "nur" die sln-Datei aktualisiert.

Falls dem so sein sollte, würde ich einfach mal in ein 2003 ein Projekt erzeugen, dann in 2005 konvertieren, und mal die beiden sln-Dateien vergleichen. Eventuell kannst Du dann händisch die 2005er zur 2003er zurückbiegen.

Keine Ahnung, ob das klappt, aber es wäre eventuell mal einen Versuch wert.

Viele Grüße,

Golo

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

N
4.644 Beiträge seit 2004
vor 18 Jahren

Per Hand würde ich denken. Was soll denn an dem Framework buggy sein? Ich arbeite seit Beta 1 mit diesem Produkt und finde nicht, dass das Framework buggy ist. Das VS ist natürlich eine andere Geschichte.

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

also mir ist z.B. aufgefallen, dass das Framework eine Cross-Thread Exception wirft, an stellen wo es eigentlich gar keine gibt. ich hab den gleichen Sourcecode in VS 2003 unter dem Framework 1.1 getestet, nachdem ich mind. 6h davor saß und überlegt hab, wie es zu dieser Exception kommt. Nunja, Ergebnis in VS 2003 war: es gibt keinen Fehler. Das Programm lief einwandfrei. Klar, ich könnte jetzt diesen Fehler mit invoke ausbügeln, allerdings hab ich dadurch derartige Leistungseinbußen, sodass das für mich absolut inakzeptabel ist.

Ich hab das eben mal fix mit der sln-Datei getestet. Leider klappt es nicht so wirklich. VS2003 versucht das Projekt zwar zu öffnen, scheitert aber. Geändert hab ich die *.sln und die *.csproj.user.

4.207 Beiträge seit 2003
vor 18 Jahren

Bezogen auf beides: Kannst das mal ein bissle genauer erklären?

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

also zum ersten Punkt:

ich hab in meiner Mainform 'n Panel in welches ich irgendwelche Usercontrols lade. Nun führe ich in einem Usercontrol eine Aktion aus, bei welcher ein EventHandler automatisch aufgerufen wird. In dem Eventhandler werden jetzt Aktionen ausgeführt, wie z.B. den Text eines Labels updaten oder die Balken von unterschiedlichen Progressbars (alle befinden sich in dem Usercontrol, in welchem auch die Aktionen ausgeführt werden). Hier sagt VS2005 - Cross thread Exception. Meine Elemente wie Labels usw. wurden angeblich in einem anderen Thread erstellt. Wenn ich das nun aber in VS2003 nachbaue funzt alles einwandfrei. Hab gelesen, dass dieser fehler mit dem VS2005 zusammen aufgetaucht sein soll.

Das Problem ist jetzt, wenn ich invokeRequired und invoke verwende, dass es mindestens 10mal solange dauert, da z.B. mein Eventhandler ca. 20000 aufgerufen wird und jedesmal invokeRequired ist. Also muß er jedesmal dem angeblich richtigen Thread zugeordnet werden, in welchem er sich aber eigentlich schon befindet. Hoffe du wolltest das wissen und hast es einigermaßen verstanden 😛

Nun zum 2ten Punkt: die 2005er *.sln und die 2003er *.sln sehen sich sehr ähnlich, sodass man die fix umändern kann. Das alleine brachte aber nix. Nun hab ich die *.proj.user noch umgeändert, welche sehr unterschiedlich voneinander sind. Nun sehe ich in VS2003 wenigstens schonmal das Project als Ordner im Projektmappenexplorer, allerdings ist dieser leer und VS2003 sagt immernoch, dass es das Projekt nicht öffnen kann. Vielleicht hab ich auch einfach was falsch umgeschrieben oder es muß vielleicht sogar noch mehr geändert werden?

4.207 Beiträge seit 2003
vor 18 Jahren

Danke erst einmal für die ausführliche Antwort 🙂.

Ad 1: Wurden die Controls denn in einem unterschiedlichen Thread erstellt? Wenn ja, dann ist das kein Bug im 2.0er, sondern eigentlich einer im 1.1er 😉

Ad 2: Da muss ich nun leider passen ... sorry!

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

ok, die *.csproj muß definitv auch noch umgeändert werden. Alle Dateien unterscheiden sich prinzipiell nur vom Aufbau. Inhalte scheinen identisch zu sein, soweit ich das eben überblicken konnte.

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

nein, die Controls wurden im gleichen Thread erstellt - ich hab mir stundenlang meine Matschbirne darüber zerbrochen und hätte vor Frust ausrasten können (man kennt das ja). Deswegen hab ich's einfach mal in VS2003 probiert und da hats auf Anhieb geklappt. Außerdem merkt man durch sowas auch mal, wie langsam invoke eigentlich ist (hat ja aber nix mit VS2005 oder dem Framework 2.0 zu tun - wollt das nur mal erwähnt haben 😉 )

Hoffe, dass ich das mit der Umkonvertierung hinkrieg, wenn ich etwas Ruhe und Zeit dafür hab. Drum herum kommen werd ich wohl nicht, da ich einfach keine Alternative zu invoke gefunden hab.

Thx für die Hilfe bis hierher.

1.549 Beiträge seit 2004
vor 18 Jahren

mach doch einfach folgendes:

leg ein neues projekt an und füge zu diesem alle deine Dateinen hinzu setzt die Referenzen neu und fertig (sollte eigendlich weniger arbeit sein als händisch in den Projekt dateien rum zu wursteln)

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

N
4.644 Beiträge seit 2004
vor 18 Jahren

Dann muss er trotzdem händisch ggf. den .NET 2.0 Code auf 1.1 anpassen. Das meinte ich auch eigentlich.

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

@S.H. -Teichhof

eigentlich 'ne gute Idee. Werd das morgen mal in Angriff nehmen.

@Noodles

Davor grauts mir schon. Durch VS2005 und dem Framework 2.0 kam ja auch einiges Gutes, was einem schon etwas Tipparbeit abnahm. Das wird bestimmt 'ne Tagesaufgabe.

M
masmin Themenstarter:in
29 Beiträge seit 2005
vor 18 Jahren

Also, das einfache Umschreiben der *.sln - Datei bringt nicht viel. VS2005 beherrscht ja das Anlegen sogenannter partial-Classes, in welchen dann der ganze InitializeComponent-Krams einer Klasse steht. In VS2003 gibt es diese Klassen noch nicht und man muß das ganze also händisch wieder anpassen.

Ansonsten war die Idee von S.H.-Teichhof wirklich gut. Bin schon recht weit voran gekommen und (zum Glück) hab ich nicht allzuviel C# 2.0 spezifisches Zeugs in meinem Code.