次のような.NETCoreプロジェクトがあるとします。
"frameworks": {
"net40": {},
"dotnet5.1": {}
}
そしてこれはあなたのC#コードです:
public class Foo
{
public static void Blah()
{
#if DOTNET5_1
DoSomething();
#Elif NET40
DoSomethingElse();
#endif
}
}
これで、VisualStudioで.cs
ファイルを表示すると、#if
セクションの1つがグレー表示されます-DoSomething
またはDoSomethingElse
。これが私のラップトップにどのように表示されるかです:
VSにターゲットプラットフォーム間で「コンテキストの切り替え」を行わせて、特定のプラットフォーム用にコンパイルされるものを表示することは可能ですか?たとえば、実際にソリューションを構築する前に、各フレームワークの赤い波線を確認したい場合があります。
助けていただければ幸いです、ありがとう!
エディタの上部にはナビゲーションバーがあります。ナビゲーションバーの左側には、コンテキストを選択できるドロップダウンメニューがあります。
ナビゲーションバーが非表示になっている場合は、[ツール]> [オプション]> [テキストエディター]> [C#]に移動し、ナビゲーションバーのチェックボックスをオンにして有効にできます。
すでに提供されている答えはほとんど正しいようです。現在それに関して存在するいくつかの問題を強調したいと思います。
本日現在、VS 2015 Community Edバージョン14.0.25424.00アップデート3、global.jsonsdk 1.0.0-preview2-003121では、ナビゲーションバーに複数のターゲットが表示されるのは、スタートアッププロジェクトは、マルチターゲットの「実行可能」プロジェクトです(コンソールアプリなど)。
マルチターゲットクラスライブラリで起動が設定されている場合、ターゲットスイッチは表示されません(緑色の矢印の横のラベルも異なります)。
また、スイッチャーを使用できる場合、「標準」の条件付き定義 ビルドシステムによって提供される がエディターで正しく強調表示されていないようです。
条件付き定義ブロックが正しく強調表示されるようにするには、最後のスクリーンショットで緑色で強調表示されているプロジェクトスイッチャーを切り替える必要があります。同じプロジェクト内の異なるターゲットは、この目的のために異なるプロジェクトとして扱われるようです。そして、それはエディターで開いているファイルごとに独立して変更できます。