TeamCity オンプレミス 2025.11 ヘルプ

重複ファインダー (ReSharper)

ReSharper コマンドラインツールに基づく重複ファインダー (ReSharper) ビルドランナーは、同様のコードフラグメントをキャッチし、Visual Studio 2003, 2005, 2008, 2010, 2012, 2013,, 2015 ソリューションで検出された C# および Visual Basic .NET コードの反復ブロックに関するレポートを提供することを目的としています。

一般的なビルドステップの設定の説明については、ビルドステップの設定を参照してください。このステップをコンテナー内で実行する方法については、コンテナーラッパーを参照してください)。

ソース

オプション

説明

含める

重複検索に含めるファイルを指定するには、チェックアウトルートを基準とした改改行コードの Ant のようなワイルドカードを使用します。
Visual Studio ソリューションファイルは解析され、ソリューション内のすべてのプロジェクトのすべてのソースファイルに置き換えられます。
サンプル: src\MySolution.sln

除外

重複検索からファイルを除外するには、改行で区切られた Ant のようなワイルドカードを入力します(たとえば、*/generated{*}{}.cs)。エントリは、チェックアウトルートを基準にしています。

JetBrains ReSharper コマンドラインツールの設定

オプション

説明

R#CLT ホームディレクトリ

ReSharper コマンドラインツールのバージョンを選択します。

インストールされている JetBrains ReSharper コマンドラインツールのバージョンは、管理 | ツールページで確認できます。特定の ReSharper バージョンを使用して ReSharper 複製を実行する場合(たとえば、Visual Studio にインストールしたバージョンと一致することを確認するため)、このページを使用して別のバージョンのツールをインストールし、使用するデフォルトバージョンを変更できます。

dupFinder プラットフォーム

dupFinder ツールのプラットフォームビット数を選択します。デフォルトでは、x64 です。クロスプラットフォームの重複ファインダーは、ReSharper 2020.2.1 以降でもサポートされています。

重複する検索設定

オプション

説明

コードフラグメントの比較

これらのオプションを使用して、反復コードフラグメントを検索するときにソースコードのどの要素を破棄するかを定義します。コードフラグメントは、構造的には類似しているが、異なる変数、フィールド、メソッド、型、またはリテラルを含む場合、重複していると見なすことができます。以下のサンプルを参照してください。

名前空間を破棄

このオプションをオンにすると、名前空間の仕様が異なる類似コンテンツが重複として認識されます。

NLog.Logger.GetInstance().Log("abcd"); A.Log.Logger.GetInstance().Log("abcd");

リテラルを破棄する

このオプションがチェックされている場合、リテラルが異なる同じコード行は重複していると認識されます。

myStatusBar.SetText("Not Logged In"); myStatusBar.SetText("Logging In...");

ローカル変数を破棄

このオプションがチェックされている場合、異なるローカル変数名を持つ類似のコードフラグメントは重複として認識されます。

int a = 5; a += 6; int b = 5; b += 6;

クラスフィールド名を破棄

このオプションがチェックされている場合、異なるフィールド名を持つ類似のコードフラグメントは重複として認識されます。

Console.WriteLine(myFoo); Console.WriteLine(myBar); ... where myFoo and myBar are declared in the containing class

タイプを破棄

このオプションがチェックされている場合、タイプ名が異なる類似のコンテンツは重複として認識されます。これらには、すべての可能な型参照が含まれています(下記参照)。

Logger.GetInstance("text"); OtherUtility.GetInstance("text"); ... where Logger and OtherUtility are both type names (thus GetInstance is a static method in both classes) Logger a = (Logger) GetObject("object"); OtherUtility a = (OtherUtility) GetObject("object"); public int SomeMethod(string param); public void SomeMethod(object[] param);

以下の複雑さで重複を無視します

このフィールドを使用して、重複を検出するときに考慮するコードブロックの最低レベルの複雑さを指定します。

コメントを開いてファイルをスキップする

改改行コードのキーワードを入力して、ファイルの開始コメントにそのキーワードを含むファイルを重複検索から除外します。

メッセージの部分文字列で領域をスキップ

メッセージの部分文字列にキーワードを含む領域を重複検索から除外する、改改行コードのキーワードを入力してください。たとえば、"generated code" と入力すると、"Windows Form Designer generated code" を含む領域はスキップされます。

デバッグ出力を有効にする

このオプションをオンにすると、ビルドメッセージにデバッグメッセージが含まれ、追加のログ(dotnet-tools-dupfinder.log)と共にアーティファクトとしてファイルが公開されます。

追加の dupFinder パラメーター

dupFinder.exe の呼び出しに追加する改行で区切られたコマンドラインパラメーターを指定します。

ビルドの失敗条件

ビルドに重複が多すぎる場合は、ビルド失敗条件を設定してビルドが失敗するように構成できます。

2025 年 10 月 27 日