Lässt sich so einfach eine Visual Studio 2005er Solution mit mehreren Projekten nach 2010 konvertieren? Was muss man beachten und ggfl. was muss man "per Hand" nacharbeiten?!
Gibt es Erfahrungen, Tipps, Anregungen diesbezüglich?
Ich habe damit noch keine negativen Erfahrungen gemacht.
Einziger manueller Eingriff, den ich immer hatte: VS2010 erstellt immer eine app.config-Datei, wenn sie noch nicht existiert und trägt dort die .NET-Version ein. Diese habe ich immer nachträglich gelöscht. Außerdem wird auch eine Übernahmedatei für die Code-Analyse-Regeln erzeugt und ins Projekt eingefügt. Die Codeanalyse-Einstellungen wurden aber bei meinen Projekten nie korrekt übernommen, so dass ich immer alles gelöscht und neu Eingestellt habe.
Andere Eingriffe waren bei meinem Projekten nicht notwendig.
Das kann man wohl so pauschal nicht sagen. Ich hatte bisher keine großen Probleme beim Konvertieren von Projekten. Wenn du doppelt auf eine 2005er Solution klickst öffnet sich bei installiertem 2010er ein Version Selector der das Konvertieren übernimmt. Also wenn es geht ein Backup machen und das Tool dann seinen Dienst tun lassen.
Ansonsten kann man auch die Kopfzeile des *.sln mit einem einfachen Editor auch in folgendes Format ändern: Microsoft Visual Studio Solution File, Format Version 11.00
Das ist aber etwas gewagt und ich weiß nicht welche Nebeneffekt es hat. Ich benutzt das manchmal, wenn ich Solutions der 2008er versehentlich mit 2010 geöffnet habe und diese wieder mit dem 2008er öffnen möchte. Denn wenn die Format Version dort nicht auf 10.00 steht, weigert sich das Mistding die Datei zu öffnen.
Für das Programm bleibt das Target-Framework dasselbe wie unter VS 2005, demnach sollte alles wie gehabt funktionieren. Jedoch ist natürlich der Compiler ein anderer, wodurch der erzeugte IL-Code nicht mehr 1:1 dem vom VS 2005 entspricht, auch nicht bei gleichem Target Framework. Das tangiert aber nur im Fehlerfall, und da ist mir nichts bekannt.
Bei Migration auf Framework 4.0 könnte es zu zusätzlichen Warnings kommen, weil teilweise Klassen/Methoden/Properties obsolete wurden. Und es Bedarf u. U. der Einarbeitung in die neuen Features. Hierbei auch auf Kompatibilität von Drittanbieter Controls / Bibliotheken und andere externe Referenzen achten, die eine andere Framework Version als Target haben.