[VS 2010 BETA 1] Conversione di una soluzione/progetto da VS 2008 a VS 2010 e viceversa
Pubblicato da Mario De Ghetto su 20 Maggio 2009
In questo post facciamo un piccolo esperimento di conversione tra le versioni 2008 e 2010: dopo aver creato un’applicazione Windows Form in Visual Basic, sia con Visual Studio 2008, sia con Visual Studio 2010 Beta 1, proviamo a scambiarle e vediamo l’effetto che fa!
Iniziamo con l’operazione che spesso è quella più semplice (tra versioni .NET immediatamente successive): da VS 2008 a VS 2010 Beta 1.
L’applicazione è semplicissima (un pulsante e una textbox, senza codice), giusto per vedere le funzionalità di conversione della soluzione e del progetto, più che del contenuto.
All’apertura della soluzione VS 2008 in VS 2010 Beta 1, parte l’utilità di conversione automatica:
Dopo un clic su Next, prima di tutto ci chiede se vogliamo fare una copia di backup del progetto:
Rispondiamogli con Yes, già selezionato per default.
Subito dopo si presenterà una schermata finale e non possiamo fare altro che premere il pulsante Finish (o tornare indietro):
VS 2010 Beta 1, gentilmente, ci informa che la soluzione non è sicura e chiede se deve proseguire lo stesso:
Infine ci informa che tutti i progetti sono stati convertiti con successo e ci offre la possibilità di vedere il log delle operazioni di conversione (inserito in un file XML di nome UpgradeLog.xml):
Ed ecco il risultato finale:
Il file ProgettoVB2008.sln, cioè il file principale della soluzione VB2008, conteneva quanto segue:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProgettoVB2008", "ProgettoVB2008.vbproj", "{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Dopo la conversione è diventato così:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProgettoVB2008", "ProgettoVB2008.vbproj", "{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Di fatto sono cambiate solamente le prime due righe, il numero del formato del file di soluzione e il riferimento alla versione di Visual Studio.
Allo stesso modo è cambiato il file di progetto, ProgettoVB2008.vbproj: cambia la versione del progetto da 3.5 a 4.0, ma la versione del Framework .NET rimane 3.5. In più ci sono varie voci aggiunte al file XML di progetto che fanno riferimento più che altro alla conversione.
Proviamo ora ad aprire con VS 2008 un progetto creato in VS 2010 Beta 1: come previsto otteniamo un errore, come già avveniva tra le versioni 2005 e 2008.
Poco male, apriamo il file della soluzione (VB2010Beta1.sln) con un editor di testo come NotePad e modifichiamo la prima riga, cambiando la versione da 11 a 10.
Proviamo ora ad aprire la soluzione: perfetto, questo trucchetto funziona ancora!
Attenzione: la prova che abbiamo fatto è estremamente semplice e non è detto che funzioni sempre, soprattutto se la soluzione è molto complessa. In ogni caso abbiamo dimostrato che non si può partire già dando per scontato che è un’operazione che non si può fare.