C# Dev Kit FAQ
C# Dev Kit 拡張機能についてさらに学習し、発生している問題のトラブルシューティングを行うには、この FAQ (よくある質問) トピックを使用してください。
一般
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-style" プロジェクトとも呼ばれる最新の .NET プロジェクト形式をサポートします。.NET Framework アプリや Xamarin アプリなどの非 SDK 形式のプロジェクトを構築している場合は、「プロジェクト システム」セクションを参照してください。
C# Dev Kit に含まれる拡張機能は何ですか?
現在、C# Dev Kit ファミリーに含まれる拡張機能は次のとおりです。
これらの拡張機能の使用は、C# Dev Kit ファミリー拡張機能の EULA に基づいています。
これらの拡張機能には、独自のライセンスを持つ依存関係もあります。たとえば、C# Dev Kit はC# 拡張機能と.NET インストール ツールに依存しています。
C# Dev Kit がアクティブ化しない / C# Dev Kit コマンドが見つからないのはなぜですか?
C# ファイルを編集しようとしたときに C# Dev Kit がアクティブ化しない理由はいくつかあります。
- C# 拡張機能のバージョン 2.0 以降がインストールされていない。C# Dev Kit には C# 拡張機能のバージョン 2.0 以降が必要です。C# 拡張機能がインストールされており、バージョン 2.0 以降であることを確認してください。
- ワークスペースが C# 拡張機能を優先している。C# Dev Kit は .NET Framework プロジェクトをサポートしていません。
dotnet.preferCSharpExtension設定を true に設定している場合、そのワークスペースでは C# Dev Kit が無効になります。プロジェクトが .NET Framework プロジェクトでない場合は、この設定を無効にしてください。 - 読み取り専用 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 を選択します。

C# Dev Kit はオープンソースですか?なぜですか?
いいえ。C# Dev Kit はクローズドソースですが、オープンソースである C# for VS Code 拡張機能に依存しており、両方ともRoslynやRazorなどのオープンソース コンポーネントと通信します。C# Dev Kit の目標の 1 つは、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 の取得エラー

注: 中国にいる場合、.NET SDK のダウンロードがブロックされ、タイムアウトが発生する可能性があります。
.NET SDK がインストールされていることを確認する必要があります。回避策として、.NET ランタイム取得拡張機能を既存の .NET インストールにポイントできます。

.NET を手動でインストールするにはどうすればよいですか?
.NET のインストールが失敗する場合、または既存の .NET インストールを再利用したい場合は、dotnetAcquisitionExtension.existingDotnetPath 設定を使用できます。.NET は、C# Dev Kit ウォークスルーまたは.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 プロジェクトをサポートしていません。

この問題を解決するには、2 つの選択肢があります。
すべての C# Dev Kit 機能にアクセスするために、プロジェクトを SDK スタイル プロジェクトに更新できます。
または、設定エディターの 「C# 拡張機能を優先」 ワークスペース設定を使用して、プロジェクトとソリューションの読み込みをC# 拡張機能に委任することもできます。この設定では、一部の C# Dev Kit 機能が利用できなくなることに注意してください。この設定にアクセスするには、設定エディターに移動し、「ワークスペース」 タブを選択します。次に、検索バーで「Prefer CSharp」を検索し、「C# 拡張機能を優先」 設定の横にあるチェックボックスをオンにします。.NET Framework プロジェクトを読み込もうとしている場合、C# Dev Kit は、プロジェクトを SDK スタイル プロジェクトに更新するか、通知から 「C# 拡張機能を使用」 を選択して C# 拡張機能にプロジェクトまたはソリューションを読み込ませるように求める通知を自動的に表示します。このオプションを選択すると、「C# 拡張機能を優先」 設定が自動的に選択されます。この設定を有効にするには、VS Code を再読み込みする必要があることに注意してください。
「.NET プロジェクトを作成」ボタンをクリックしても何も起こりませんでした。
これは通常、拡張機能のバージョンが一致しない場合に発生します。C# Dev Kit には、C# 拡張機能のバージョン 2.0 以降が必要です。C# 拡張機能が v1 の場合、C# Dev Kit および C# Dev Kit 関連のコマンドは正しく機能しません。これを解決するには、C# 拡張機能を最新バージョンにアップグレードしてください。
プロジェクト システムが問題に遭遇したと報告しています
内部のプロジェクト システム エラーが発生すると、通常、VS Code の隅に次のような通知が表示されます。

「ログを開く」 ボタンを選択して、問題が発生した場所のスタックトレースを示すビューを開きます。ログ内のすべてのテキストを選択してコピーします。VS Code を通じて問題を報告し、コピーしたログのテキストを含めるようにしてください。
ソリューションを開くと、「ソリューションの復元に失敗しました」という通知が表示されます。
「エラーを表示」 を選択します。これにより、NuGet の出力パネルが開きます。エラーを読み、パッケージの復元が完了できなかった理由を判断してください。問題を解決できない場合は、VS Code を通じて問題を報告してください。
ソリューション エクスプローラーに「互換性のある .NET SDK が見つかりませんでした」と表示されます。
このエラーの最も一般的な原因は、システムにインストールされている SDK とは異なる SDK を指定している global.json ファイルです。

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

この問題を解決するには、global.json を更新してインストール済みの SDK を指定するか、.NET のダウンロード ページから指定された SDK をインストールしてください。
次に、ワークスペースを閉じて再度開きます。
SDK が C# Dev Kit に認識されている場所にインストールされていない可能性もあります。これは、例えば、SDK が Microsoft が提供するインストーラーではなく、パッケージ マネージャーによってインストールされた場合に発生する可能性があります。これを解決するには、パッケージ マネージャーを介して SDK をアンインストールし、その後.NET のダウンロードを介してインストールしてください。
テスト エクスプローラー
テストがテストエクスプローラーパネルに表示されないのはなぜですか?
ソリューションにテストプロジェクトが含まれていることを確認してください。開いているソリューションの一部であるテストプロジェクトのみが含まれます。テストプロジェクトがソリューションの一部であるかどうかを確認するには、ファイルエクスプローラーでソリューションエクスプローラービューを開き、ツリーにプロジェクトが表示されるかどうかを確認してください。ソリューションノードを右クリックして、既存のテストプロジェクトを追加するか、ソリューションに新しいテストプロジェクトを作成します。
C# Dev Kit はまた、テストがテストエクスプローラーパネルに表示される前に、プロジェクトが正常にビルドされている必要があります。また、プロジェクト/ソリューションに対して クリーン が実行されると、テスト DLL はテストエクスプローラーパネルから削除されます。
テスト プロジェクトがソリューションの一部であることを確認したら、ソリューション エクスプローラーでソリューションを右クリックして ビルド を選択するか、⇧⌘B (Windows、Linux Ctrl+Shift+B) を使用してソリューションをビルドします。ビルドが完了すると、テストがテスト エクスプローラー パネルに表示されます。
テストがまだ表示されない場合は、次の追加チェックを検討してください。
- サポートされている .NET Core SDK: ご使用のプラットフォームとマシンでサポートされている .NET Core SDK を使用していることを確認してください。一部の SDK は特定のオペレーティング システムまたはアーキテクチャでは動作しません。詳細については、公式の .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 プロジェクトをサポートしていませんが、.NET Framework プロジェクトが読み込まれ、動作するように見えることがあります。VS Code のデバッガーは .NET Framework をサポートしていません。
テスト プロジェクトに新しいテストを追加したばかりですが、テスト エクスプローラー パネルに表示されません。
C# Dev Kit は、テストがテスト エクスプローラー パネルに表示される前に、プロジェクトが正常にビルドされている必要があります。
ソリューション エクスプローラーでソリューションを右クリックして ビルド を選択するか、⇧⌘B (Windows、Linux Ctrl+Shift+B) を使用してソリューションをビルドします。ビルドが完了すると、テストがテスト エクスプローラー パネルに表示されます。
テストがテスト エクスプローラーで検出または実行されないのはなぜですか?
テスト プロジェクトが Microsoft Testing Platform (MTP) を使用している場合、MSTest、NUnit、xUnit v3、または TUnit テスト フレームワークのいずれかを介して使用している場合、MTP は従来の VSTest プラットフォームとは異なるため、テストがテスト エクスプローラーで検出または実行されない可能性があります。これを解決するには、Visual Studio Code で「Testing Platform Protocol を使用」設定を有効にして、C# Dev Kit が MTP テスト プロジェクトと通信できるようにする必要があります。
設定を有効にするには、次の手順に従います。
- VS Code で設定を開きます: ファイル > 設定 > 設定 に移動します (または ⌘, (Windows、Linux Ctrl+,) を押します)。
- 設定検索バーに「Test Window」と入力して、結果を絞り込みます。
- C# Dev Kit 拡張機能の設定の下にある Dotnet > Test Window: Testing Platform Protocol を使用する設定を見つけます。
- チェックボックスをオンにして有効にします (または「オン」に切り替えます)。
- コマンドパレットで ウィンドウのリロード コマンドを実行して VS Code をリロードします (⇧⌘P (Windows、Linux Ctrl+Shift+P))。
この設定を有効にすると、テストがテスト エクスプローラーで適切に検出および実行されるはずです。
テスト エクスプローラーに関する問題のトラブルシューティングのためにログを収集するにはどうすればよいですか?
テスト エクスプローラーで問題が発生している場合は、トラブルシューティングのために詳細情報を収集するために診断ログを有効にすることができます。
- テスト エクスプローラーの詳細度を上げる: C# Dev Kit の設定に移動し、テスト エクスプローラーの詳細度設定を
minimalからdiagnosticに増やします。これにより、より詳細なログが生成されます。 - 出力ウィンドウを確認する: Visual Studio Code の出力ウィンドウを開き、ドロップダウンから C# Dev Kit - テスト エクスプローラー を選択します。診断メッセージには
[dev]接頭辞が表示されます。 - 以下の情報を収集する: 問題を報告する際には、次の情報を含めるようにしてください。
- 出力ウィンドウからの診断ログ。
- オペレーティング システムとバージョン (例: Windows 10、macOS 13)。
- 使用している 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 --enablesudo dscl . append /Groups/_developer GroupMembership $USER
デバッグが機能しないのはなぜですか?
ライブラリまたはテスト プロジェクトをデバッグしようとしている場合、コードが適切にデバッグされるようにするために追加のステップが必要になる可能性があります。ライブラリをデバッグするには、ライブラリと対話するコンソールまたは Web アプリケーションを作成できます。テスト プロジェクトの場合、テスト エクスプローラーを使用してコードを効果的にデバッグできます。
デバッグ中にブレークポイントがバインドされません
デバッグ中のプロセスはデバッグビルドされていません。プロセスをデバッグする前にデバッグビルドであることを確認してください。
C# エディター
IntelliSense を正しく動作させるにはどうすればよいですか?
プロジェクトまたはソリューションが開いていることを確認してください。複数のソリューションがある場合、拡張機能は自動的にいずれかを開くか、開くように促します。次に、設定検索バーで「Trace」を検索し、ドロップダウンから Dotnet > Server: を Trace に設定します。このオプションは、開発者チームが問題を診断するのに役立つ詳細な出力情報を提供します。

この変更を行った後、コマンド パレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を開いて「Reload Window」と入力し、Enter キーを押してウィンドウをリロードします。ウィンドウをリロードした後、出力パネル (⇧⌘U (Windows Ctrl+Shift+U、Linux Ctrl+K Ctrl+H)) でプロジェクト ログを確認し、ドロップダウンから プロジェクト を選択します。これにより、プロジェクトが完全に読み込まれていないことに関連するエラーが表示されます。出力パネル内のすべてのテキストをコピーし、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」と入力して、コード分析に関連する設定を絞り込みます。バックグラウンド コード分析を実行する対象: の下で、ドロップダウン メニューから分析スコープを選択できます。既定の設定は開いているファイルを分析することですが、ソリューション全体、なし、または開いているドキュメントにカスタマイズできます。

EditorConfig ファイルを使用して診断とコード分析を構成することもできます。EditorConfig の詳細については、ドキュメントを確認してください。
十分な診断が表示されない場合、またはまったく表示されない場合は、プロジェクトが完全に読み込まれていない可能性があります。この状況かどうかを確認するには、「IntelliSense を正しく動作させるにはどうすればよいですか?」セクションを参照してください。プロジェクトが完全に読み込まれているかどうかを確認する手順が記載されています。
Razor エディター
ほとんどまたはすべての Blazor コンポーネントに警告が表示されます。
Blazor コンポーネントが検出される前に、C# Dev Kit はプロジェクトを正常に読み込む必要があります。さらに、Razor 言語サーバーは、プロジェクトの状態を理解するために project.razor.vscode.bin ファイルが生成されている必要があります。このファイルが生成されていない場合、またはコンポーネントなしで生成されている場合、Razor のエクスペリエンスに影響が出る可能性があります。
パフォーマンスを向上させるために、拡張機能は、最初の .razor または .cshtml ファイルを開くまで、このファイルの生成または読み込みを延期することがあります。使用しようとしているプロジェクトのソリューション エクスプローラーにエラーがないことを確認するために、慎重に確認してください。
プロジェクトが正しく読み込まれたことを確認したら、ファイルシステム上の obj\Debug\ フォルダーに project.razor.vscode.bin ファイルが存在することを確認します。これはバイナリファイルであるため、ファイルの内容を直接検証することは簡単ではありませんが、一般的にほとんどの Razor プロジェクトでは少なくとも 150KB 程度のサイズのファイルが生成されるはずです。ファイルが数キロバイトしかない場合は、タグヘルパーやコンポーネントが正しく検出されていない可能性があります。
ファイルを強制的に再生成するには、開いている .razor または .cshtml ファイルを閉じ、VS Code ウィンドウをリロードし、プロジェクトが正しく読み込まれたら、任意の .razor または .cshtml ファイルを開いて再生成プロセスをトリガーします。
Razor ファイルでターゲット フレームワーク エラーが言及されています。
Razor 言語サーバーは通常「ソリューション」の概念を持っておらず、代わりにプロジェクトの obj\Debug\ フォルダーに project.razor.vscode.bin ファイルが存在することに基づいてプロジェクトを読み込みます。時折、使用されなくなったターゲット フレームワークの古いファイルが混乱を引き起こし、Razor サーバーがプロジェクトがマルチターゲットであると、または一部のコンポーネントが参照されていないのに参照されていると誤認する可能性があります。
この問題を解決するには、obj フォルダー内の古いフォルダーを削除するか、すべて削除します。次に、VS Code ウィンドウをリロードし、.razor ファイルを開きます。これにより、新しい JSON ファイルが確実に生成され、古いファイルは削除されます。
IntelliCode
行全体の補完ができません。
GitHub Copilot 拡張機能が有効になっている場合、より高度なAI 補完機能を利用できるように、行全体の補完は無効になります。Copilot が有効になっているかどうかは、VS Code の右下隅に Copilot のロゴが表示されているかどうかで確認できます。
ホットリロード
デバッグを開始してもホットリロードアイコンが表示されません。
デバッガーは、C# Dev Kit のデバッガー設定でホット リロード オプションが有効になっている場合にのみ、ホット リロード セッションを開始します。このオプションが有効になっている場合、デバッグ中にステータス バーにホット リロード アイコンが表示されるはずです。

ホット リロード アイコンをクリックするか、C# ホット リロード 出力ウィンドウを開いて診断情報を確認できます。どちらも表示されない場合、プロジェクトが C# Dev Kit 拡張機能でサポートされていない可能性があります。ホット リロードがサポートされているプロジェクトを参照してください。
ホット リロードでサポートされている編集の種類は何ですか?
ホット リロードでサポートされている C# コード変更の一覧については、サポートされているコード変更を参照してください。