Contexte
Nous avons un projet que nous développons dans VS 2015 avec C # 6 activé qui doit parfois être ouvert par les développeurs utilisant VS 2013 sans C # 6.
Nous n'avons pas l'intention d'utiliser C # 6 dans cette solution particulière (autant que je le souhaiterais).
Problème
Visual Studio et ReSharper suggèrent des constructions de langage C # 6 utiles qui rendent la solution inopérante dans les versions antérieures de Visual Studio sans prise en charge de C # 6.
J'ai désactivé la prise en charge de ReSharper C # 6 mais je n'arrive pas à désactiver / limiter les fonctionnalités C # dans l'ensemble de la solution.
Question
Comment limiter les fonctionnalités C # à C # 5 dans une solution ou dans Visual Studio 2015?
c#
visual-studio
c#-5.0
visual-studio-2015
c#-6.0
SeanKilleen
la source
la source
Réponses:
Vous pouvez définir la fonctionnalité de langue pour chaque projet séparément en accédant à
Properties => Build tab => Advanced button => Language Version
et en définissant votre version préférée.Vous devez savoir qu'il utilisera toujours la nouvelle plate-forme de compilateur .Net "C # 6.0" (nom de code Roslyn). Cependant, ce compilateur imitera le comportement des anciens compilateurs et vous limitera aux fonctionnalités disponibles uniquement sur cette version de langage spécifique.
Je ne pense pas qu'il existe un paramètre à l'échelle de la solution disponible.
la source
PropertyGroup
élément:<LangVersion>5</LangVersion>
<LangVersion>6</LangVersion>
place.ajouter ci-dessous
.sln.DotSettings
devrait le désactiver au niveau de la solutionOu si vous n'avez pas de
.sln.DotSettings
fichier:Si votre fichier de solution s'appelle Apple.sln, créez un fichier à côté appelé Apple.sln.DotSettings.
Donnez-lui le contenu suivant:
Fermez et rouvrez la solution, Resharper ne devrait vous avertir que des choses C # 5.
N'oubliez pas de le supprimer lorsque vous commencez à utiliser les fonctionnalités C # 6! :)
la source
Cet outil que j'ai écrit pourrait vous aider si vous avez de nombreux projets à définir
LangVersion
.la source
Vous pouvez définir la fonction de langue pour tous les
solutions/csproj
avecMSBuildUserExtensionsPath
.Recherchez la valeur du
$(MSBuildUserExtensionsPath)
, cela devrait être quelque chose commeC:\Users\$(User)\AppData\Local\Microsoft\MSBuild
Puis éditez le fichier
Force.LangVersion.ImportBefore.props
dans le dossier$(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore
avec:la source
Des étapes ont déjà été écrites ci-dessus, en ajoutant simplement une capture d'écran de mon VS2015:
Propriétés du projet >> Construire >> Avancé >> Version linguistique
J'ai mis cela à C # 5.0.
la source
Cliquez avec le bouton droit sur Projet dans l'Explorateur de projets et sélectionnez Propriétés.
Lorsque l'onglet Propriétés s'ouvre, sélectionnez Construire et cliquez sur le bouton Avancer en bas à droite.
Il existe une liste déroulante appelée Version de la langue. Changez la sélection en "C # 5.0"
la source