Le problème principal semble être une déconnexion entre Visual Studio et .NET Framework/CLR. Visual Studio, semble-t-il, peut être mis à jour pour utiliser les nouvelles versions de C#, indépendamment de toute nouvelle version existante sur votre machine.
Vous ne devrait pas besoin de spécifier en utilisant C# 6.0 dans les propriétés construire SQLCLR avancées, mais cela vous donne un message d'erreur qui est perspicace:
Option non valide « 6 » pour/langversion; doit être ISO-1, ISO-2, 3, 4, 5 ou par défaut
En regardant les messages de sortie (en supposant un niveau suffisamment élevé), il devrait montrer que vous utilisez C: \ Windows \ Microsoft .NET \ Framework \ v4.0.30319 \ Csc.exe, donc il ne semble pas que le fichier .sqlproj ou SSDT forcer quelque chose ici. Mais, si vous allez à une invite de commande, accédez au dossier contenant Csc.exe et l'exécuter directement (juste Csc à l'invite), vous devriez voir la note suivante:
Microsoft (R) Visual C# Compilateur version 4.6.1590.0
pour C# 5
Droit d'auteur (C) Microsoft Corporation. Tous les droits sont réservés.
Ce compilateur est fourni avec Microsoft (R) .NET Framework, mais ne prend en charge que les versions linguistiques jusqu'à C# 5, qui n'est plus la dernière version.Pour les compilateurs qui prennent en charge les versions plus récentes du langage de programmation C#, voir http://go.microsoft.com/fwlink/?LinkID=533240
Ce lien vous amène au dépôt GitHub pour Roslyn. Pour faciliter les choses, voici le lien direct vers cette page, à partir de la section pour télécharger le compilateur sans téléchargement aussi Visual Studio (puisque vous avez déjà):
https://github.com/dotnet/roslyn#download-c-and-visual-basic
Si vous cliquez sur le projet de la principale menu existe-t-il une option "enable C# 6"? –
La propriété est la propriété auto et il a obtenu seulement. Si elle n'a pas d'ensemble ou de logique de retourner quelque chose, comment voulez-vous qu'il retourne quoi que ce soit. C'est pourquoi vous voyez cette erreur. Si vous êtes indenté pour définir la valeur de cette propriété à l'intérieur de la classe, vous pouvez déclarer private set dans la propriété. Ou avoir une certaine logique dans le get pour retourner de la valeur. –
@ChetanRanpariya C# 6 permet de déclarer les auto-propriétés sans setter, elles peuvent être assignées dans le ctor par exemple. –