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 がアクティブにならない理由はいくつかあります。
- 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 は、資格のあるユーザー向けの Community License を介して利用でき、既存の 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 はクローズドソースですが、オープンソースである VS Code 用 C# 拡張機能に依存しており、どちらも 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 Code of Conduct を参照してください。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 Web サイト から手動でインストールできます。拡張機能をそのインストールに向けるには、以下に示すように、拡張機能 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 つのオプションがあります。
プロジェクトを SDK スタイルプロジェクトに 更新 して、利用可能なすべての C# Dev Kit 機能にアクセスできます。
または、[設定] エディターの [CSharp 拡張機能を優先する] ワークスペース設定を使用して、プロジェクトとソリューションのロードを C# 拡張機能 に委任できます。この設定では、一部の C# Dev Kit 機能が利用できなくなることに注意してください。この設定にアクセスするには、[設定] エディターに移動し、[ワークスペース] タブを選択します。次に、検索バーで "CSharp を優先する" を検索し、[CSharp 拡張機能を優先する] 設定の横にあるチェックボックスをオンにします。.NET Framework プロジェクトをロードしようとすると、C# Dev Kit は、プロジェクトを SDK スタイルプロジェクトに更新するか、通知から [C# 拡張機能を使用する] を選択して C# 拡張機能にプロジェクトまたはソリューションをロードさせるかを尋ねる通知を自動的に表示します。このオプションを選択すると、[CSharp 拡張機能を優先する] 設定が自動的に選択されます。この設定を有効にするには、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) を使用してソリューションをビルドします。ビルドが完了すると、テストがテストエクスプローラーパネルに表示されます。
テストエクスプローラーの問題のトラブルシューティングのためにログを収集するにはどうすればよいですか?
テストエクスプローラーで問題が発生している場合は、診断ログを有効にして、トラブルシューティングのための詳細情報を収集できます。
- テストエクスプローラーの冗長性を上げる: C# Dev Kit の設定に移動し、[テストエクスプローラーの冗長性] 設定を [最小] から [診断] に上げます。これにより、より詳細なログが生成されます。
- [出力] ウィンドウを確認する: Visual Studio Code で [出力] ウィンドウを開き、ドロップダウンから [C# Dev Kit - Test Explorer] を選択します。診断メッセージは [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 --enable
sudo dscl . append /Groups/_developer GroupMembership $USER
デバッグが機能しないのはなぜですか?
ライブラリまたはテストプロジェクトをデバッグしようとしている場合は、コードが適切にデバッグされるように、いくつかの追加の手順を実行する必要がある可能性があります。ライブラリをデバッグするには、ライブラリと対話するコンソールアプリケーションまたは Web アプリケーションを作成できます。テストプロジェクトの場合は、テストエクスプローラーを使用してコードを効果的にデバッグできます。
デバッグ中に、ブレークポイントがバインドされていません。
デバッグしているプロセスはデバッグでビルドされていません。プロセスをデバッグする前に、デバッグとしてビルドしてください。
C# エディター
IntelliSense を正しく動作させるにはどうすればよいですか?
プロジェクトまたはソリューションが開いていることを確認してください。複数のソリューションがある場合、拡張機能は自動的に 1 つを開くか、開くように促します。次に、[設定] 検索バーで "Trace" を検索し、[Dotnet] > [サーバー:] をドロップダウンから [トレース] に設定します。このオプションは、開発チームが問題を診断するのに役立つより多くの出力情報を提供します。
この変更を加えたら、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、「ウィンドウのリロード」と入力して 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 プロジェクトでは、少なくとも 150 KB のサイズのファイルが生成されるはずです。ファイルが数キロバイトしかない場合は、タグヘルパーやコンポーネントが正しく検出されていない可能性があります。
ファイルを強制的に再生成するには、開いている .razor ファイルまたは .cshtml ファイルをすべて閉じ、VS Code ウィンドウをリロードし、プロジェクトが正常にロードされたら、.razor ファイルまたは .cshtml ファイルを開いて再生成プロセスをトリガーします。
ターゲットフレームワークエラーが Razor ファイルで言及されています。
Razor 言語サーバーは、一般に「ソリューション」の概念を持っていませんが、代わりにプロジェクトの obj\Debug\
フォルダーにある project.razor.vscode.bin
ファイルの存在に基づいてプロジェクトをロードします。場合によっては、使用されなくなったターゲットフレームワークからの古いファイルが混乱を引き起こし、Razor サーバーがプロジェクトをマルチターゲットである、または一部のコンポーネントが実際には参照されていないのにまだ参照されていると認識する可能性があります。
この問題を解決するには、obj
フォルダー内から古いフォルダーをクリアするか、すべてクリアします。次に、VS Code ウィンドウをリロードし、.razor ファイルを開きます。これにより、新しい JSON ファイルが生成され、古いファイルが削除されます。
IntelliCode
行全体の補完を取得できません。
より高度な AI 補完機能を活用できるように、GitHub Copilot 拡張機能が有効になっている場合、行全体の補完は無効になります。Copilot が有効になっているかどうかは、VS Code の右下隅に Copilot ロゴが表示されているかどうかを確認することで確認できます。
ホットリロード
デバッグを開始した後、ホットリロードアイコンが表示されません。
デバッガーは、C# Dev Kit デバッガー設定 でホットリロードのオプションが有効になっている場合にのみ、ホットリロードセッションを開始します。オプションが有効になっている場合、デバッグ中にホットリロードアイコンがステータスバーに表示されることが予想されます。
ホットリロードアイコンをクリックするか、[C# ホットリロード] [出力] ウィンドウを開いて診断情報を確認できます。どちらも表示されない場合は、プロジェクトが C# Dev Kit 拡張機能でサポートされていない可能性があります。「ホットリロードでサポートされているプロジェクト」を参照してください。
ホットリロードでサポートされている編集の種類は何ですか?
ホットリロードでサポートされている C# コードの変更の一覧については、「サポートされているコード変更」を参照してください。