Domanda

Supponiamo che una soluzione contenga solo classi e che tali classi siano tutte scritte nelle specifiche .NET 2.0. Se quella soluzione fosse aperta, convertita e salvata in Visual Studio 2008, sarebbe possibile riaprire la soluzione in un secondo momento in Visual Studio 2005 con alcune modifiche minime al file .SLN?

Come si potrebbe fare per farlo?

Esiste uno strumento che "convertirà" " File .SLN dal 2008 al 2005 se tutte le classi contenute nella soluzione sono già scritte nelle specifiche .NET 2.0?

È stato utile?

Soluzione

Solitamente, l'unica cosa che devi fare con i file .SLN è cambiare il numero di versione nella parte superiore del file.

Anche i file del tuo progetto CS saranno quasi OK, e se non lo sono, è possibile modificarli in modo che siano OK sia con il 2005 che con il 2008.

Abbiamo funzionato per un po 'con due file di soluzione (05 e 08) che condividevano lo stesso set di file di progetto CS.

Tuttavia, tieni presente che non puoi condividere file di progetto VC tra le due versioni in questo modo.

Il 'tweak' per i file di progetto è il seguente:

I progetti CS creati su VS2008 conterranno la riga:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

VS2005 si strozzerà con questo, ed è necessario cambiarlo nel modo seguente:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Quest'ultimo funzionerà sia con il 2005 che con il 2008.

Altri suggerimenti

Se non stai utilizzando " fancy " funzioni nel 2008, nella mia esperienza l'unica cosa che cambia è il numero di versione in un paio di posti. Che può essere modificato manualmente (si trova nella parte superiore del file IIRC). Vale almeno la pena provare. Se utilizzi funzionalità specifiche di VS2008 (designer, ecc.) Potrebbe non funzionare, ma per librerie di classi semplici ho avuto successo nel farlo.

Potresti essere interessato a post sul blog su VS2005 e VS2008 coesistenti che ho scritto qualche tempo fa.

Qui c'è un convertitore http://www.emmet-gray.com/ Articoli / ProjectConverter.htm (funziona anche con VS 2010).

Esiste anche http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(link attualmente non funzionante?).

Ho anche trovato questo http://www.codeplex.com/Vs2008BackMigration ma non l'ho fatto testarlo.

Sì, è possibile, se "esegui il downgrade" i file della soluzione.

No, non esiste uno strumento del genere di cui io sia a conoscenza e che ho cercato.

Hai tre opzioni:

  1. Non aprire il file della soluzione nel 2008 e quindi non aggiornarlo mai
  2. Non mischiare le versioni client con gli stessi file (es. attenersi al 2005 o aggiornare tutti)
  3. Conserva file di soluzioni separati per il 2005 e il 2008, assicurati che tutti e due gli stessi progetti siano presenti in entrambi

Grazie a @Will Dean per avermi ricordato che i file di progetto possono davvero essere condivisi. Si noti che sono toccati dall'editore del 2008, ma possono essere aperti nel 2005 in seguito.

Potresti provare questo. YMMV

http://www.emmet-gray.com/Articles/ProjectConverter.htm

Ricordo che è stato pubblicato sul blog di Jon Skeets qualche mese fa e sembrava aver ricevuto un pollice in più dalle persone

Non esiste un modo diretto ed è un ordine elevato se ci provi. Il modo più semplice sarebbe quello di creare un nuovo progetto del 2005 e aggiungere le tue lezioni.

Per cominciare: queste sono le differenze che vedresti:

File .csproj: (questi sono basati sullo schema MSBuild)

(edit)

  • ToolsVersion
  • ProductVersion
  • ProjectVersion

(rimuovere)

  • OldToolsVersion
  • TargetFramework

File .sln: (nessuno schema)

  • Formato versione 10.0

ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top