J'utilise VS 2013 avec .Net Framework 4.6. Je veux utiliser de nouvelles fonctionnalités C # 6 (par exemple nameof
), mais je ne l'ai pas trouvé.
Dois-je utiliser VS 2015? Ou .Net Framework supérieur?
Oui, pour utiliser les fonctionnalités C # 6, vous avez besoin d'un compilateur C # 6. Visual Studio 2013 n'a pas de compilateur C # 6. Visual Studio 2015 le fait.
Il y a eu des pré-versions de Roslyn pour Visual Studio 2013, mais elles n'implémentent pas le C # 6 final: elles n'implémentent en fait pas toutes les fonctionnalités, et ce qu'elles implémentent est différent du comportement C # 6 final.
oui, vous devez utiliser Visual Studio 2015. Il n'est pas pris en charge dans VS 2013. Lien connexe: https://msdn.Microsoft.com/en-us/library/dn986596.aspx
Dans la version antérieure à VS2015, vous pouvez ajouter la classe suivante à votre solution et remplacer toutes les instances de nameof(
Par NameOf.nameof(() =>
comme suggéré dans obtenir le nom d'une variable ou d'un paramètre
using System;
using System.Linq.Expressions;
namespace ICSharpCode.SharpZipLib
{
public class NameOf
{
public static String nameof<T>(Expression<Func<T>> name)
{
MemberExpression expressionBody = (MemberExpression)name.Body;
return expressionBody.Member.Name;
}
}
}
Vous ne pourrez pas utiliser C # 6 dans VS2013. Le compilateur ne comprendra pas la nouvelle syntaxe C # 6 que vous essayez d'utiliser. Comment puis-je ajouter C # 6.0 à Visual Studio 2013?
L'installation de ce paquet nuget l'a corrigé pour mon projet.
Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Si vous obtenez cette erreur dans Teamcity, apportez les modifications suivantes à l'étape de génération pour la corriger.