Qodana 2024.1 ヘルプ

.NET の Qodana コミュニティ

Qodana Community for .NET は、ReSharper に基づくコミュニティリンターであり、.NET プロジェクトの静的分析を提供します。ReSharper のすべての機能が組み込まれており、次のことに役立ちます。

  • 異常なコードと考えられるバグを検出

  • デッドコードを削除する

  • スペルの問題をハイライトする

  • 全体的なコード構造を改善する

  • コーディングのベストプラクティスを紹介する

  • インスペクションの結果を Qodana クラウドにアップロードする

Qodana Community for .NET を使用すると、C# 言語および Visual Basic.NET (VB.NET) 言語を使用する .NET Core プロジェクトをインスペクションできます。.sln ソリューションファイルを含むプロジェクトの C/C++ インスペクションもサポートします。

サポートされている機能

Qodana Community for .NET リンターは、次の Qodana 機能を提供します。

フィーチャー

ライセンスに基づいて利用可能

ベースライン

Community

クオリティゲート

Community

プロジェクトをローカルで分析する

プロジェクトを準備する

ローカルマシン上で Qodana Community for .NET を実行する予定がある場合は、このマシン上の Docker が稼働していることを確認してください。

デフォルトでは、Qodana は単一のソリューションファイルを見つけて使用しようとします。ソリューションファイルが存在しない場合は、プロジェクトファイルを見つけようとします。プロジェクトに複数のソリューションファイルが含まれている場合は、--solution オプションとソリューションファイルへの相対パスを使用して正確なファイル名を指定する必要があります。例: Qodana が常に MySolution.sln ソリューションファイルを分析するようにするには、次を使用できます。

Qodana Community for .NET では、リポジトリルートからソリューションまたはプロジェクトファイルへの相対パスが必要です。

qodana.yaml ファイルで設定できます。

dotnet: solution: <relative-path-to-solution-file>

あるいは、--solution オプションを使用してこれを行うこともできます。

--solution=<relative-path-to-solution-file>

プロジェクトにソリューションファイルが含まれておらず、複数のプロジェクトファイルが含まれている場合は、--project オプションとプロジェクトファイルへの相対パスを使用する必要があります。例: MyProject.csproj プロジェクトファイルの場合、次の構成を qodana.yaml ファイルに保存できます。

dotnet: project: MyProject.csproj

あるいは、--project オプションを使用してこれを行うこともできます。

--project=MyProject.csproj

Qodana Community for .NET は、 qodana.yaml ファイルを使用したインスペクション構成をサポートしていません。これらの目的には、.editorconfig および .DotSettings ファイルを使用できます。それに加えて、Qodana Community for .NET は Roslyn アナライザーをサポートしており、各アナライザーは個別のインスペクションと見なされます。.editorconfig ファイルを使用して Roslyn アナライザーを構成できます。これは実験的な機能であるため、自己責任で使用してください。

ソリューションを構成する

ソリューション構成は、ソリューション内のどのプロジェクトをビルドするか、およびソリューション内の特定のプロジェクトにどのプロジェクト構成を使用するかを定義します。

新しく作成された各ソリューションには Debug 構成と Release 構成が含まれており、カスタム構成で補完できます。

qodana.yaml ファイルで現在のソリューションの構成を切り替えることができます。

dotnet: configuration: Release

あるいは、--configuration オプションを使用してこれを行うこともできます。

--configuration=Release

デフォルトでは、ソリューションプラットフォームは Any CPU に設定されており、qodana.yaml ファイルでオーバーライドできます。

dotnet: platform: x86

あるいは、--platform オプションを使用してこれを行うこともできます。

--platform=x86

プロジェクトのビルド

Qodana Community for .NET が開始されると、プロジェクトがビルドされます。プロジェクトのビルドが失敗すると、コード分析を実行できなくなります。

カスタムビルドを実行したい場合は、リンターの実行中に --no-build オプションを使用します。

docker run \ -v <source-directory>/:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-cdnet:2024.1-eap \ --no-build

この場合、 qodana.yaml ファイルの bootstrap キーで、プロジェクトのビルド方法を指定したり、Qodana に渡す前にパイプラインでビルドを実行したりできます。

リンターを実行する

次のコマンドを使用して、Qodana Community for .NET リンターの Dockerized バージョンを実行します。

docker run \ -v <source-directory>/:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-cdnet:2024.1-eap

ここで、QODANA_TOKEN 変数はプロジェクトトークンを指定します。Qodana がコードのインスペクションを完了したら、Qodana クラウド(英語)を開いてインスペクションレポートを表示できます。

次のステップ

関連ページ:

Qodana クラウド

Qodana を複数のプロジェクトまたはリポジトリで実行する場合、特にコードベースが複数のサーバーと仮想プライベートネットワークに分散されていて、各チームが独立して作業している場合は、すべての分析レポートを 1 か所に読み込んで集約すると便利です。このような場合、すべての Qodana インスタンスからレポート情報を収集して表示するための集中型ソリューションが役立ちます。Qodana クラウドは、さまざまな Qodana レポートを蓄積し、プロジェクトの進捗状況を一元的に追跡するのに役立つクラウ...

プロジェクトトークン

一般に利用可能な有料リンターでは、Qodana の実行中に変数を使用してプロジェクトトークンを提供する必要があります。例:qodana scan \ -e QODANA_TOKEN="<qodana-cloud-token>"docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<qodana-cloud-token>" \ jetbrains/qodana-<linter> 変数には、Qodana リ...

ベースライン

ベースラインは、特定の Qodana 実行時に取得され、ファイルに含まれているコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新しい問題、変更されていない問題、解決された問題を確認できます。この機能は、Community、Ultimate、Ultimate Plus ライセンスとその試用版で利用可能なすべてのリンターでサポートされています。使い方:ベースラインなしで Qodana を実行すると、現在の実行時に検出された問題を確認...

ReSharper 設定の管理と共有

ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...