webdevqa.jp.net

Visual Studio 2015でC#6サポートを無効にするにはどうすればよいですか?

バックグラウンド

C#6を有効にしてVS 2015で開発しているプロジェクトがあり、C#6なしでVS 2013を使用している開発者が開く必要がある場合があります。

この特定のソリューション内でC#6を使用するつもりはありません(できる限り)。

問題

Visual StudioとReSharperは、C#6をサポートしない以前のバージョンのVisual Studioでソリューションを動作不能にする有用なC#6言語構成を提案しています。

ReSharper C#6サポートを無効化 しましたが、ソリューション全体でC#機能を無効化/制限することはできません。

質問

ソリューション内またはVisual Studio 2015内でC#をC#5に制限するにはどうすればよいですか?

136
SeanKilleen

Properties => Build tab => Advanced button => Language Versionに移動して優先バージョンを設定することにより、各プロジェクトの言語機能を個別に設定できます。

新しい "C#6.0" .Net Compiler Platform(コードネームRoslyn)を引き続き使用することに注意してください。ただし、そのコンパイラーは模倣古いコンパイラーの動作になり、その特定の言語バージョンでのみ使用可能な機能に制限されます。


ソリューション全体の設定が利用できるとは思わない。

135
i3arnon

以下を.sln.DotSettingsに追加すると、ソリューションレベルで無効になります

<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>

または、.sln.DotSettingsファイルがない場合:

  1. ソリューションファイルの名前がApple.slnの場合、その横にApple.sln.DotSettingsというファイルを作成します。

  2. 次の内容を提供します。

    <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;Assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.Microsoft.com/winfx/2006/xaml/presentation">
        <s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
    </wpf:ResourceDictionary>
    
  3. ソリューションを閉じて再度開くと、ResharperはC#5についてのみ警告する必要があります。

  4. 最終的にC#6機能の使用を開始するときに、これを削除することを忘れないでください! :)

49
harishr

この tool は、LangVersionを設定する必要のあるプロジェクトが多数ある場合に役立ちます。

11
khellang

すべてのsolutions/csprojの言語機能をMSBuildUserExtensionsPathで設定できます。

$(MSBuildUserExtensionsPath)の値を検索します。C:\Users\$(User)\AppData\Local\Microsoft\MSBuildのようなものでなければなりません

次に、フォルダー$(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBeforeのファイルForce.LangVersion.ImportBefore.propsを次のように編集します。

<Project xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LangVersion>5</LangVersion>
  </PropertyGroup>
</Project>
10
whaly

VS2015のスクリーンショットを追加するだけで、上記の手順は既に記述されています。

プロジェクトのプロパティ>>ビルド>>詳細>>言語バージョン

enter image description here

これをC#5.0に設定しました。

9
Raghav

Project ExplorerでProjectを右クリックして、Propertiesを選択します。

[プロパティ]タブが開いたら、[ビルド]を選択し、右下の[進む]ボタンをクリックします。

言語バージョンと呼ばれるドロップダウンボックスがあります。選択を「C#5.0」に変更します

8
Nicknow