Pour utiliser les nouvelles fonctionnalités du langage - C # 7.1 avec Visual Studio 2017, vous ajoutez le paramètre <LangVersion>latest</LangVersion>
à vos fichiers de projet.
Cependant, la construction de tels projets à partir de MSBuild (version 15.3.409.57025, située dans C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin
) génère une erreur:
CSC : error CS1617: Invalid option 'latest' for /langversion;
must be ISO-1, ISO-2, Default or an integer in range 1 to 6.
Cette fonctionnalité n'est-elle pas encore prise en charge par MSBuild ou est-il possible de faire fonctionner cette fonctionnalité?
Cela couvre plus de 200 projets initialement créés de différentes manières dans Visual Studio 2013 et 2015. Ils ont tous été redirigés vers .NET 4.7 à l'aide de Target Framework Migrator tool (qui a enregistré lots en cliquant et apparaît - basé sur l’inspection des modifications du fichier .csproj - pour effectuer le travail correctement).
Les projets ont tous été créés avec succès à partir de Visual Studio 2017.
Nous avons découvert que nos projets MVC étaient à l'origine de ce problème.
Pour résoudre ce problème, nous avons mis à jour le package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
NuGet utilisé par ces projets à partir de la version 1.0.0 en 1.0.7 .
Microsoft.Net.Compilers
ne fonctionne pas et n’a pas besoin de pour être installé.project/build settings
suivantDéfinissez au moins C# 7.1
ou supérieur dans les propriétés de construction Debug
etRelease
. (via: menu Projet> Propriétés [NomProjet]> onglet Construire> bouton [Avancé]> Version linguistique).
La mise à la dernière version ne fonctionne pas pas.
Assurez-vous également que vous utilisez la dernière version de MSBuild.
Ajoutez une référence à Microsoft.Net.Compilers package (version 2.3.x, pour obtenir C # 7.1).
Une courte description du paquet :
Microsoft.Net.Compilers
Ce paquet comprend non seulement le C # et le Compilateurs Visual Basic, il modifie également les cibles MSBuild afin que le les versions incluses du compilateur sont utilisées plutôt que n'importe quel système installé versions. Une fois installé, ce package nécessite Microsoft Build Tools 2015.
Au cas où vous atterririez ici parce que vous obteniez l'erreur mentionnée dans l'OP, en exécutant msbuild via la ligne de commande (par exemple, à partir d'un agent de construction tel que jenkins), la solution peut être aussi simple que upgrade Outils de compilation Microsoft 2015.
Vous pouvez le faire via installer choco par Microsoft-build-tools ou manuellement via le Microsoft Build Tools 2015 officiel ou en mettant à jour votre installation de Visual Studio 2017.