C# Dev Kit FAQ

この FAQ(よくある質問)トピックを使用して、C# Dev Kit 拡張機能の詳細を確認し、発生している問題をトラブルシューティングしてください。

全般

C# Dev Kit とは何ですか?

C# Dev Kit は、Visual Studio Code での C# 開発体験を向上させるために作成された拡張機能です。VS Code に、より包括的で生産性が高く、信頼性の高い C# 開発環境を提供することを目的としています。C# Dev Kit は、既存の C# 拡張機能を置き換えるものではなく、それが提供する優れた言語サービス機能の上に構築されるものです。開発者は、既存の C# 拡張機能の更新版を使い続けることも、C# Dev Kit を追加して開発体験を強化することも選択できます。

現在サポートされているプロジェクトの種類は何ですか?

C# Dev Kit は、.NET Core(一般に .NET とも呼ばれます)向けの Web アプリ、コンソールアプリ、クラスライブラリプロジェクト、およびテストプロジェクトのビルドをサポートしています。.NET MAUI 拡張機能Unity 拡張機能は C# Dev Kit の上に構築されており、.NET Multi-platform App UI (MAUI) アプリおよび Unity アプリをビルドするための追加サポートを提供します。これらの拡張機能は、「SDK スタイル」プロジェクトとしても知られる最新の .NET プロジェクト形式をサポートしています。.NET Framework アプリや Xamarin アプリなど、SDK 形式以外のプロジェクトをビルドしている場合は、「プロジェクトシステム」セクションを参照してください。

C# Dev Kit にはどのような拡張機能が含まれていますか?

現在、C# Dev Kit ファミリーに含まれる拡張機能は以下の通りです。

これらの拡張機能の使用は、C# Dev Kit 拡張機能ファミリーの EULA(使用許諾契約)に準拠します。

これらの拡張機能には、それぞれ独自のライセンスを持つ依存関係もあります。例えば、C# Dev Kit は C# 拡張機能および .NET Install Tool に依存しています。

C# Dev Kit がアクティブにならない、または C# Dev Kit のコマンドが見つからないのはなぜですか?

C# ファイルを編集しようとしたときに C# Dev Kit がアクティブにならない理由として、いくつかの原因が考えられます。

  1. C# 拡張機能のバージョン 2.0 以上がインストールされていない。C# Dev Kit には、C# 拡張機能のバージョン 2.0 以上が必要です。C# 拡張機能がインストールされていること、およびそのバージョンが 2.0 以上であることを確認してください。
  2. ワークスペースで C# 拡張機能が優先されている。C# Dev Kit は .NET Framework プロジェクトをサポートしていません。dotnet.preferCSharpExtension 設定を true に設定している場合、そのワークスペースでは C# Dev Kit が無効になります。プロジェクトが .NET Framework プロジェクトでない場合は、この設定を無効にしてください。
  3. 読み取り専用の OS を使用している。C# Dev Kit は、その独自の拡張機能フォルダーおよび VS Code が提供する拡張機能用フォルダーに対して書き込みアクセス権を必要とします。OS が完全に読み取り専用の場合、C# Dev Kit は動作しません。

これらを確認しても C# Dev Kit のコマンドが見つからない場合は、問題を報告し、C# Dev Kit の「出力」ウィンドウに表示されている情報を提供してください。

ライセンスおよびコントリビューション

C# Dev Kit を使用できるのは誰ですか?

C# Dev Kit は、資格のあるユーザー向けにコミュニティライセンスを通じて提供されており、既存の Visual Studio サブスクリプションの特典としても含まれています。つまり、有効な Visual Studio サブスクリプションを持つ開発者は、今日から C# Dev Kit を利用できます。

個人、学術目的、およびオープンソースプロジェクトの場合、C# Dev Kit は無償で使用できます。商用目的の場合、最大 5 名までのチームは C# Dev Kit を無償で使用できます。6 名以上の開発者がいる場合は、Visual Studio Professional(以上)のサブスクリプションが必要です。C# Dev Kit は GitHub Codespaces および Microsoft Dev Box にも含まれているため、これらの製品のユーザーは追加料金なしで C# Dev Kit を利用できます。

フィードバックや提案はどこに送信すればよいですか?

ユーザーは、VS Code の ヘルプ > 問題の報告 から、問題や提案を報告できます。バグ、機能リクエスト、パフォーマンス問題のいずれかを選択し、拡張機能に提出して、リストから C# Dev Kit を選択してください。

Help > Report Issue image

C# Dev Kit はオープンソースですか?なぜそうではないのですか?

いいえ。C# Dev Kit はクローズドソースですが、オープンソースである「C# for VS Code」拡張機能に依存しており、両者とも RoslynRazor といったオープンソースコンポーネントと通信します。C# Dev Kit における目標の一つは、VS Code を使用する C# 開発者に生産性の高い開発体験を提供することです。これを実現するために、C# Dev Kit には他のツールと共有される独自のクローズドソース機能が含まれています。これらの体験を VS Code ユーザーに提供するため、C# Dev Kit をクローズドソースの拡張機能として導入する必要がありました。

どのように貢献できますか?

C# Dev Kit の一部である C# 拡張機能は完全にオープンソースであり、これらのライセンス条項に従います。この拡張機能のソースコードは https://github.com/dotnet/vscode-csharp で公開されており、MIT ライセンスの下でライセンスされています。

このプロジェクトは、コミュニティで期待される行動を明確にするために Contributor Covenant で定義された行動規範を採用しています。詳細については、.NET Foundation の行動規範を参照してください。CLA に署名することで、あなたの貢献は .NET Foundation プロジェクトで自由に利用できるようになります。

.NET SDK

インストールスクリプトがタイムアウトしました

.NET Core ランタイムのインストールは、ネットワーク速度によっては時間がかかる場合があります。デフォルトでは、完了までに 4.5 分以上かかるとインストールは失敗として終了します。この時間が短すぎる(または長すぎる)と思われる場合は、dotnetAcquisitionExtension.installTimeoutValue を設定してタイムアウト値を変更できます。

VS Code 設定の構成について詳しく学び、以下の settings.json ファイルにおけるカスタムタイムアウトの例を参照してください。この例では、カスタムタイムアウト値を 180 秒(3 分)に設定しています。

{
  "dotnetAcquisitionExtension.installTimeoutValue": 180
}

.NET SDK の取得エラー

Error acquiring .NET SDK

注: 中国にお住まいの場合、.NET SDK のダウンロードがブロックされ、タイムアウトが発生する可能性があります。

.NET SDK がインストールされていることを確認する必要があります。回避策として、.NET ランタイム取得拡張機能に対して、既存の .NET インストール場所を指定することができます。

Point the .NET runtime acquisition extension to an existing .NET SDK install

.NET を手動でインストールするにはどうすればよいですか?

.NET のインストールが失敗する場合や、既存の .NET インストールを再利用したい場合は、dotnetAcquisitionExtension.existingDotnetPath 設定を使用できます。.NET は、C# Dev Kit Walkthrough または .NET ウェブサイトから手動でインストールできます。拡張機能にそのインストール場所を指示するには、以下の図のように拡張機能 ID とパスを設定に更新してください。

Windows

{
  "dotnetAcquisitionExtension.existingDotnetPath": [
    {
      "extensionId": "msazuretools.azurerm-vscode-tools",
      "path": "C:\\Program Files\\dotnet\\dotnet.exe"
    }
  ]
}

macOS

{
  "dotnetAcquisitionExtension.existingDotnetPath": [
    {
      "extensionId": "msazuretools.azurerm-vscode-tools",
      "path": "/usr/local/share/dotnet/dotnet"
    }
  ]
}

プロキシ環境で、オフラインであると誤判定されエラー 400 または 407 が発生します

システムがプロキシを使用しており、レジストリへのアクセスが無効になっている場合、拡張機能の設定で明示的にプロキシ URL を設定する必要があります。プロキシは、環境変数やレジストリを介して設定されている場合は自動的に検出されますが、プロキシがレジストリキーでのみ管理されており、レジストリへのアクセスが無効になっている場合、拡張機能はそれを見つけることができません。プロキシ URL を設定するには、以下の拡張機能設定を追加してください。

{
  "dotnetAcquisitionExtension.proxyUrl": "https://your_proxy_url:port"
}

プロジェクトシステム

ソリューションエクスプローラーで「プロジェクトが C# Dev Kit でサポートされていません」と表示されます

これは通常、プロジェクトが .NET Core/.NET ではなく .NET Framework をターゲットにしていることが原因です。現時点で、C# Dev Kit は .NET Framework プロジェクトをサポートしていません。

Project Not Supported in Solution Explorer

この問題を解決するには、2 つの選択肢があります。

C# Dev Kit の全機能にアクセスするために、プロジェクトを SDK スタイルにアップデートできます。

あるいは、設定エディターの「Prefer CSharp Extension」ワークスペース設定を使用して、プロジェクトおよびソリューションの読み込みを C# 拡張機能に委任することもできます。この設定では一部の C# Dev Kit 機能が利用できなくなることに注意してください。この設定にアクセスするには、設定エディターを開き、ワークスペースタブを選択します。次に、検索バーで「Prefer CSharp」を検索し、Prefer CSharp Extension 設定の横にあるチェックボックスをオンにします。.NET Framework プロジェクトを読み込もうとすると、C# Dev Kit はプロジェクトを SDK スタイルに更新するか、通知から Use C# Extension を選択して C# 拡張機能に読み込ませるよう求める通知を自動的に表示します。このオプションを選択すると、Prefer CSharp Extension 設定が自動的に選択されます。この設定を有効にするには、VS Code をリロードする必要があることに注意してください。

「Create .NET Project」ボタンをクリックしても何も起こりません

これは通常、拡張機能のバージョン不整合がある場合に発生します。C# Dev Kit には C# 拡張機能のバージョン 2.0 以上が必要です。C# 拡張機能の v1 を使用している場合、C# Dev Kit および関連コマンドは正しく動作しません。これを修正するには、C# 拡張機能を最新バージョンにアップグレードしてください。

プロジェクトシステムで問題が発生しましたと表示されます

プロジェクトシステム内でエラーが発生した場合、通常、VS Code の隅にこのような通知が表示されます。

Failed to Restore Solution

ログを開くボタンを選択すると、問題が発生した場所のスタックトレースを表示するビューが開きます。ログ内のすべてのテキストを選択してコピーしてください。VS Code を通じて問題を報告し、コピーしたログテキストを必ず含めてください。

ソリューションを開くと「Failed to restore solution」という通知が表示されます

エラーを表示を選択します。これにより、NuGet の出力パネルが開きます。エラーの内容を読み、パッケージの復元が完了できなかった理由を確認してください。問題を解決できない場合は、VS Code を通じて報告してください。

ソリューションエクスプローラーに「A compatible .NET SDK was not found」と表示されます

このエラーの最も可能性の高い原因は、システムにインストールされているものとは異なる SDK を指定する global.json ファイルが存在することです。

A compatible .NET SDK was not found

出力ウィンドウを開き、プロジェクトペインに切り替えて詳細情報を確認してください。以下のような内容が表示されるはずです。

Output Window Projects Pane

この問題を修正するには、global.json を更新してインストール済みの SDK を指定するか、.NET のダウンロードページから指定された SDK をインストールしてください。

次に、ワークスペースを閉じて再度開きます。

SDK が C# Dev Kit に認識されない場所にインストールされている可能性もあります。これは、Microsoft 提供のインストーラーではなくパッケージマネージャーによって SDK がインストールされた場合などに発生します。これを修正するには、パッケージマネージャー経由で SDK をアンインストールし、.NET のダウンロード経由でインストールし直してください。

テスト エクスプローラー

テストエクスプローラーパネルにテストが表示されないのはなぜですか?

ソリューションにテストプロジェクトが含まれていることを確認してください。開いているソリューションの一部であるテストプロジェクトのみが含まれます。テストプロジェクトがソリューションの一部であるかどうかを確認するには、ファイルエクスプローラーでソリューションエクスプローラービューを開き、ツリー内にプロジェクトが表示されているかを確認します。ソリューションノードを右クリックして既存のテストプロジェクトを追加するか、ソリューション内に新しいテストプロジェクトを作成します。

C# Dev Kit では、テストエクスプローラーパネルにテストが表示される前に、プロジェクトが正常にビルドされている必要があります。また、プロジェクト/ソリューションに対して クリーン が実行されると、テスト DLL はテストエクスプローラーパネルから削除されます。

テストプロジェクトがソリューションの一部であることを確認したら、ソリューションエクスプローラーでソリューションを右クリックして ビルド を選択するか、⇧⌘B (Windows, Linux Ctrl+Shift+B) を使用してビルドしてください。ビルドが完了すると、テストエクスプローラーパネルにテストが表示されます。

それでもテストが表示されない場合は、以下の追加チェックを検討してください。

  • サポートされている .NET Core SDK: 使用しているプラットフォームとマシンでサポートされている .NET Core SDK を使用していることを確認してください。一部の SDK は特定の OS やアーキテクチャでは動作しません。詳細については、公式の .NET ダウンロードページを確認してください: https://dotnet.microsoft.com/en-us/download
  • 有効な SDK インストール: 有効な SDK が検出されていることを確認してください。.NET プロジェクトでどの SDK が検出されているかを確認するために、診断ログを有効にすることができます。ASDF や Mise などの非公式ツール経由でインストールされた .NET SDK は、Microsoft の公式インストール方法から外れているため検出されない可能性があることに注意してください。公式の手順に従うことを推奨します。
  • ビルド出力: ビルドが完了し、.dll.exe ファイルなどの対応する出力バイナリが生成されたことを確認してください。
  • プロジェクトの読み込み: すべてのプロジェクトの読み込みが完了していることを確認してください。ソリューションエクスプローラーで、テストプロジェクトの横にあるテストアイコンを見て、検出されていることを確認してください。

テストエクスプローラーパネルにテストが表示されますが、デバッグできません

テストが .NET Core をターゲットにしていることを確認してください。C# Dev Kit は .NET Framework プロジェクトをサポートしていません。プロジェクトが読み込まれて動作しているように見える場合でも同様です。VS Code のデバッガーは .NET Framework をサポートしていません。

テストプロジェクトに新しいテストを追加しましたが、テストエクスプローラーパネルに表示されません

C# Dev Kit では、テストエクスプローラーパネルにテストが表示される前に、プロジェクトが正常にビルドされている必要があります。

ソリューションエクスプローラーでソリューションを右クリックして ビルド を選択するか、⇧⌘B (Windows, Linux Ctrl+Shift+B) を実行してください。ビルドが完了すると、テストエクスプローラーパネルにテストが表示されます。

テストエクスプローラーの問題をトラブルシューティングするためのログを収集するにはどうすればよいですか?

テストエクスプローラーで問題が発生している場合は、診断ログを有効にしてトラブルシューティングのための情報を収集できます。

  1. テストエクスプローラーの詳細度を上げる: C# Dev Kit 設定に移動し、Test Explorer Verbosity 設定を minimal から diagnostic に変更します。これにより、より詳細なログが生成されます。
  2. 出力ウィンドウを確認する: Visual Studio Code で出力ウィンドウを開き、ドロップダウンから C# Dev Kit - Test Explorer を選択します。診断メッセージは [dev] プレフィックス付きで表示されます。
  3. 以下の情報を収集する: 問題を報告する際は、必ず以下を含めてください。
  4. 出力ウィンドウからの診断ログ。
  5. OS とそのバージョン(例: Windows 10, macOS 13)。
  6. 使用している C# Dev Kit 拡張機能のバージョン。拡張機能ビューに移動し、拡張機能にカーソルを合わせるとバージョン情報が表示されます。

この情報は、より効率的に問題を診断し解決するために役立ちます。

デバッガー

F5 キーを押しても何も起こりません

C# プロジェクトが開いているか、アクティブなドキュメントが .cs または .razor ファイルであることを確認してください。それでもデバッガーの読み込みが失敗する場合は、C# Dev Kit と C# 拡張機能の両方がアクティブ化されていることを確認してください。

F5 キーを押すと「デバッガーの選択」を求められます。どれを選べばよいですか?

.NET コンソールアプリケーション、Blazor Server アプリ、Blazor WebAssembly、または Web アプリケーションをデバッグする場合は、必ず C# オプションを選択してください。その他のオプションは、JavaScript デバッグ用の Node や Python デバッグ用の Python など、他の拡張機能の一部である可能性があり、C# Dev Kit の一部ではありません。

F5 キーを押すとパスワードの入力を求められます(macOS のみ)

macOS ではデフォルトで「開発者モード」が無効になっており、プログラムをデバッガーとして使用したい場合にユーザーを保護するためのパスワードを要求します。

これらのプロンプトを無効にしたい場合は、以下のコマンドを実行できます。

  • DevToolsSecurity --enable
  • sudo dscl . append /Groups/_developer GroupMembership $USER

デバッグが機能しないのはなぜですか?

ライブラリやテストプロジェクトをデバッグしようとしている場合、コードが正しくデバッグされるようにいくつかの追加手順が必要になる可能性があります。ライブラリをデバッグするには、そのライブラリを操作するコンソールまたは Web アプリケーションを作成します。テストプロジェクトの場合は、テストエクスプローラーを使用してコードを効果的にデバッグできます。

デバッグ中にブレークポイントがバインドされません

デバッグ中のプロセスが Debug モードでビルドされていません。プロセスをデバッグする前に必ず Debug モードでビルドしてください。

C# エディター

IntelliSense を正しく動作させるにはどうすればよいですか?

プロジェクトまたはソリューションが開いていることを確認してください。複数のソリューションがある場合、拡張機能が自動的に一つを開くか、開くように指示します。次に、設定検索バーで「Trace」を検索し、Dotnet > Server: をドロップダウンから Trace に設定します。このオプションは、開発チームが問題を診断するのに役立つより多くの出力情報を提供します。

Set Dotnet Server to Trace

この変更を行った後、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、「Reload Window」と入力して Enter を押してウィンドウをリロードします。ウィンドウのリロード後、出力パネル (⇧⌘U (Windows Ctrl+Shift+U, Linux Ctrl+K Ctrl+H)) でプロジェクトログを確認し、ドロップダウンから Projects を選択します。これにより、プロジェクトが完全に読み込まれていないことに関連するエラーが表示されます。出力パネルのすべてのテキストをコピーし、VS Code を通じて問題を報告してください。その際、必ずコピーしたテキストを含めてください。

C# 拡張機能がサーバーを起動できません

回避策として、dotnetAcquisitionExtension.existingDotnetPath 設定を使用して、.NET ランタイム取得拡張機能に対して既存の .NET 7 インストール先を指定できます。

{
  "dotnetAcquisitionExtension.existingDotnetPath": [
    {
      "extensionId": "msazuretools.azurerm-vscode-tools",
      "path": "C\\Program Files\\dotnet\\dotnet.exe"
    }
  ]
}

診断情報が多すぎる、または少なすぎます

C# 拡張機能では、さまざまなバックグラウンドコード分析設定を構成できます。設定にアクセスするには、ファイル > 基本設定 > 設定 に移動するか、キーボードショートカット (⌘, (Windows, Linux Ctrl+,)) を使用します。検索バーに「analysis」と入力して、コード分析に関連する設定を絞り込みます。Run background code analysis for: の下にあるドロップダウンメニューから分析範囲を選択できます。デフォルト設定は開いているファイルの分析ですが、フルソリューション、なし、または開いているドキュメントにカスタマイズできます。

Configure Background Code Analysis

EditorConfig ファイルを使用して、診断とコード分析を構成することもできます。EditorConfig の詳細については、ドキュメントを確認してください。

診断情報が表示されない、または全く表示されない場合は、プロジェクトが完全に読み込まれていない可能性があります。これを確認するには、「IntelliSense を正しく動作させるにはどうすればよいですか?」セクションを参照してください。プロジェクトが完全に読み込まれているかどうかを検証する方法が記載されています。

Razor エディター

ほとんどまたはすべての Blazor コンポーネントに警告が表示されます

Blazor コンポーネントが検出される前に、C# Dev Kit がプロジェクトを正常に読み込む必要があります。さらに、Razor 言語サーバーがプロジェクトの状態を理解するために project.razor.vscode.bin ファイルを生成する必要があります。このファイルが生成されないか、コンポーネントを含まずに生成された場合、Razor の動作に影響が出る可能性があります。

パフォーマンスを向上させるため、拡張機能は最初の .razor または .cshtml ファイルを開くまで、このファイルの生成や読み込みを遅延させることがあります。使用しようとしているプロジェクトについて、ソリューションエクスプローラーにエラーがないか慎重に確認してください。

プロジェクトが正しく読み込まれたら、ファイルシステム上の obj\Debug\<tfm> フォルダー内に project.razor.vscode.bin ファイルが存在することを確認してください。バイナリファイルであるため内容を直接検証するのは容易ではありませんが、一般的にほとんどの Razor プロジェクトでは少なくとも 150KB 程度のサイズのファイルが生成されます。ファイルが数 KB しかない場合は、タグヘルパーやコンポーネントが正しく検出されていない可能性があります。

ファイルを強制的に再生成するには、開いている .razor または .cshtml ファイルをすべて閉じ、VS Code ウィンドウをリロードします。プロジェクトが正常に読み込まれたら、.razor または .cshtml ファイルを開いて再生成プロセスをトリガーします。

Razor ファイルでターゲットフレームワークエラーが言及されています

Razor 言語サーバーは通常「ソリューション」という概念を持たず、プロジェクトの obj\Debug\<tfm> フォルダー内の project.razor.vscode.bin ファイルの存在に基づいてプロジェクトを読み込みます。時折、使用されなくなったターゲットフレームワークからの古いファイルが混乱を引き起こし、Razor サーバーがプロジェクトをマルチターゲットであると誤認したり、参照されていないコンポーネントがまだ参照されていると認識したりすることがあります。

この問題を解決するには、obj フォルダー内から古いフォルダーを削除するか、すべてクリアしてください。その後、VS Code ウィンドウをリロードして .razor ファイルを開きます。これにより、新しい JSON ファイルが生成され、古いものが削除されるはずです。

IntelliCode

行全体の補完が機能していません

GitHub Copilot 拡張機能が有効な場合、より高度な AI 補完機能を利用できるように、行全体の補完は無効になります。Copilot が有効になっているかどうかは、VS Code の右下隅に Copilot ロゴが表示されているかを確認することで検証できます。

ホットリロード

デバッグを開始した後にホットリロードアイコンが表示されません

デバッガーは、C# Dev Kit デバッガー設定でホットリロードのオプションが有効になっている場合にのみ、ホットリロードセッションを開始します。オプションが有効な場合、デバッグ中にステータスバーにホットリロードアイコンが表示されるはずです。

Hot Reload icon in the bottom bar

ホットリロードアイコンをクリックするか、C# Hot Reload 出力ウィンドウを開いて診断情報を確認できます。どちらも表示されない場合、プロジェクトが C# Dev Kit 拡張機能でサポートされていない可能性があります。「ホットリロードでサポートされているプロジェクト」を参照してください。

ホットリロードではどのような編集がサポートされていますか?

ホットリロードでサポートされている C# コード変更の一覧については、サポートされているコード変更を参照してください。

© . This site is unofficial and not affiliated with Microsoft.