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に制限するにはどうすればよいですか?
Properties => Build tab => Advanced button => Language Version
に移動して優先バージョンを設定することにより、各プロジェクトの言語機能を個別に設定できます。
新しい "C#6.0" .Net Compiler Platform(コードネームRoslyn)を引き続き使用することに注意してください。ただし、そのコンパイラーは模倣古いコンパイラーの動作になり、その特定の言語バージョンでのみ使用可能な機能に制限されます。
ソリューション全体の設定が利用できるとは思わない。
以下を.sln.DotSettings
に追加すると、ソリューションレベルで無効になります
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
または、.sln.DotSettings
ファイルがない場合:
ソリューションファイルの名前がApple.slnの場合、その横にApple.sln.DotSettingsというファイルを作成します。
次の内容を提供します。
<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>
ソリューションを閉じて再度開くと、ResharperはC#5についてのみ警告する必要があります。
最終的にC#6機能の使用を開始するときに、これを削除することを忘れないでください! :)
この tool は、LangVersion
を設定する必要のあるプロジェクトが多数ある場合に役立ちます。
すべての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>
Project ExplorerでProjectを右クリックして、Propertiesを選択します。
[プロパティ]タブが開いたら、[ビルド]を選択し、右下の[進む]ボタンをクリックします。
言語バージョンと呼ばれるドロップダウンボックスがあります。選択を「C#5.0」に変更します