2015-07-16 6 views
8

Attualmente sto lavorando ad un progetto di Visual Basic con un team di sviluppatori, alcuni dei quali saranno in grado di passare a Visual Studio 2015, non appena viene rilasciato, e alcuni che saranno bloccati su Visual Studio 2013 per diversi mesi. Nel test con RC abbiamo rilevato che Visual Studio aprirà i progetti 2013 senza problemi, ma consentirà agli utenti di utilizzare nuove funzionalità linguistiche, come l'interpolazione delle stringhe, che non sono disponibili per gli utenti in VS 2013. Se un utente 2015 esegue il check-in questo codice gli utenti del 2013 avranno errori di compilazione. C'è qualche progetto, soluzione o impostazione di Visual Studio che dirà al compilatore di limitare le funzionalità a ciò che è disponibile nella versione precedente di VB.net? Idealmente il compilatore dovrebbe restituire un errore di compilazione quando si tenta di utilizzare queste funzionalità nel 2015.Limitare nuove funzionalità del linguaggio di Visual Basic in Visual Studio 2015

Questa funzionalità è disponibile in C# in Proprietà progetto> Build> Versione lingua, ma non riesco a trovare alcun equivalente per VB.net, e le ricerche su google mi stanno fallendo.

Volevo solo dire che l'impostazione della versione runtime .NET a 4,5 non aiuta, come queste nuove funzionalità del linguaggio sono caratteristiche di livello del compilatore che funzionano perfettamente bene sui quadri più anziani.

+2

Questo è un duplicato di: http://stackoverflow.com/a/2884368/736079 – jessehouwing

+0

Darò uno scatto, si spera che funzioni ancora con il Roslyn. –

risposta

9

Non è presente alcuna caratteristica dell'interfaccia utente per impostare la versione della lingua, ma è possibile scaricare il file di progetto e aggiungere <LangVersion>11</LangVersion> a Visual Basic predefinito con le impostazioni della lingua 2012/2013. Il progetto C# aggiunge questa proprietà sotto i gruppi di proprietà di Project Configuration, quindi per coerenza ho fatto lo stesso nell'esempio qui sotto.

pagine # proprietà Il C fanno la stessa cosa, solo che C# utilizza un diverso insieme di numeri di versione.

Un set completo di tutte le versioni linguistiche possono essere found here.

2002 (VB 7.0) 
2003 (VB 7.1) 
2005 (VB 8.0) 
2008 (VB 9.0) 
2010 (VB 10.0) 
2012 (VB 11.0) 
2015 (VB 14) 

appena testato e questo funziona per me, ma ho dovuto cambiare l'involucro a:

enter image description here

Questo si traduce in:

enter image description here

E un bel costruire fallimento:

enter image description here

+0

Non sembra funzionare per me, a meno che non l'abbia aggiunto alla sezione sbagliata del file di progetto. Tutto, inclusa l'interpolazione delle stringhe, è ancora in fase di compilazione con questa opzione. –

+0

In Visual Studio ci si sta lamentando dell'elemento nel file di progetto. Ho provato ad aggiungerlo come figlio di '' e avvolto all'interno di un ''. –

+1

Trovato! In realtà è sensibile al maiuscolo/minuscolo (' 11') e deve essere racchiuso in un '' –