ReSharper 2021.1 ヘルプ

CleanupCode コマンドラインツール

CleanupCode は無料のクロスプラットフォームコマンドラインツールであり、コードクリーンアップを実行して、プロジェクトまたはソリューションのコードスタイル違反を即座に排除し、均一なコードベースを確保できます。

CleanupCode を実行する

  1. ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用して、オペレーティングシステムを選択します。

  2. コマンドラインツールパッケージを任意のディレクトリに解凍します。
    解凍する前に、ダウンロードした .zip ファイルが「ブロック解除」されていることを確認してください。ファイルを右クリックし、Properties を選択して、ブロック解除するをクリックします。これを行わないと、.NET Framework が部分的に信頼してアプリケーションをロードします。つまり、アプリケーションが正しくロードまたは実行されません。

  3. ターゲットソリューションを構築します。適切なビルド構成を使用していることを確認してください。

  4. 次のコマンドを実行します。

    cleanupcode.exe YourSolution.sln

  5. または、.NET Core ツールとしての ReSharper コマンドラインツールをインストールして、jb コマンドで CleanupCode を実行することもできます。

DotSettings で CleanupCode を構成する

ReSharper を使用してターゲットソリューションを以前に作業したことがある場合は、すでにコードスタイル設定を構成している可能性があります。もしそうなら、CleanupCode は .DotSettings ファイルであなたのカスタム設定を見つけて、適用します。

CleanupCode は、DotSettings ファイルから次の設定を読み取ります。

CI サーバーで CleanupCode を構成する場合は、ReSharper、ソリューションチーム共有レイヤーに設定を保存するを使用してローカルですべての構成を行い、ソリューションディレクトリ内の結果の YourSolution.sln.DotSettings ファイルを VCS にコミットできます。サーバー上の CleanupCode は、これらの設定を見つけて適用します。

別の方法として、--settings パラメーターを介して共有 .DotSettings ファイルへのパスを指定することができます(他の設定ファイルの設定がある場合はそれを上書きします)。

EditorConfig と Clang 形式で CleanupCode を構成する

すべての言語の場合は EditorConfig で、C++、JavaScript、TypeScript の場合はクラン形式を使用して、コードスタイル設定を構成することもできます。これらの設定は、ソリューション階層のさまざまなレベルの .editorconfig.clang-format、または _clang-format ファイルに保存できます。ファイルは通常 VCS に置かれるため、そこで定義された設定はプロジェクトチーム間で共有されます。
ReSharper を使用すると、EditorConfig を使用して、ReSharper のオプションダイアログで使用できるコードスタイル設定を定義できます。サポートされている EditorConfig プロパティの名前と説明は、EditorConfig リファレンスにあります。
Clang-Format に関しては、ReSharper はサポートされている Clang-Format オプションのみを適用します。

.editorconfig ファイルで定義されたコードスタイルプロパティは、この .editorconfig ファイルが適用されるスコープの ReSharper 設定で定義された同じプロパティを上書きすることに注意することが重要です。Clang-Format で定義されたフォーマットプロパティは、ReSharper 設定と EditorConfig 設定の両方をオーバーライドします。

コマンドラインパラメーターで CleanupCode を構成する

クリーンアップパラメーター

  • --profile — 実行するクリーンアップタスクを一覧表示するコードクリーンアッププロファイル。

    デフォルトでは、CleanupCode はビルトイン: 完全クリーンアッププロファイルで指定されたコードクリーンアップタスクを適用します。これは、ファイルヘッダーの更新を除くすべての利用可能なクリーンアップタスクです

    さらに 2 つの組み込みプロファイルがあります。ビルトイン: コードの整形コードフォーマット設定のみを適用し、ビルトイン: 再フォーマットして構文スタイルを適用コードフォーマット設定とコード構文スタイルを適用します。これらのプロファイルのいずれかまたはカスタムプロファイルを使用するには、--profile パラメーターを介してプロファイル名を渡します(例: --profile="Built-in: Reformat Code" YourSolution.sln)。

  • --include/--exclude — クリーンアップ中に含める / 除外するファイルを定義する相対パスまたはワイルドカード。 --include--exclude の両方が定義されていて、同じファイルセットをカバーしている場合、--exclude の優先度が高くなります。
    複数のパスまたはワイルドカードを指定するには、セミコロンで区切るか、--include/--exclude パラメーターを数回使用します。

  • --properties — MSBuild のプロパティを上書きできます。各プロパティを個別に設定するか(--properties:prop1=val1 --properties:prop2=val2 )、セミコロンを使用して複数のプロパティ --properties:prop1=val1;prop2=val2 を区切ることができます。

    セミコロンは値の内側では使用できないことに注意してください(例: --properties:ReferencePath="r:\reference1\;r:\reference2\")。そのような場合、別の --properties パラメーターを使用して各値を個別に追加します。値は結合されます。

    指定されたプロパティは、分析されたすべてのプロジェクトに適用されます。現在、特定のプロジェクトのみにプロパティを設定する直接的な方法はありません。回避策は、このプロジェクトでカスタムプロパティを作成し、それを目的のプロパティに割り当ててから、CleanupCode パラメーターでカスタムプロパティを使用することです。

  • --toolset — このオプションを使用して、MSBuild の正確なバージョンを指定します。例: 12.0: --toolset=12.0 デフォルトでは、使用可能な最高の MSBuild バージョンが使用されます。同じバージョンのインストールが複数ある場合、このオプションは機能しない可能性があります。たとえば、Visual Studio の 16.0 .NET Core3.x の 2019 および 16.0 です。

  • --toolset-path — このオプションを使用して、MSBuild への正確なパスを指定します。これは、カスタム MSBuild インストールがあり、それを CleanupCode(例: --toolset-path="c:\tools\msbuild\bin\MsBuild.exe")で使用する場合に役立つことがあります。

  • --dotnetcore — デフォルトでは、.NETCore のインストールは自動検出されます。自動検出によって競合が発生した場合は、このオプションを使用して、特定の .NETCore インストールを指定できます。.NET Core を無視するには、引数なしで使用してください。例: --dotnetcore=/usr/local/share/dotnet/dotnet

  • --dotnetcoresdk — このオプションを使用して、MSBuild を提供する .NET CoreSDK のバージョンを指定します。例: SDK 2.0.3 および 3.0.100 を使用して .NETCore をインストールした場合、CleanupCode は 3.0.100(プレビューバージョンを含む最新)を優先します。ここで、.NET Core SDK 2.0.3 を使用して CleanupCode を実行する場合は、コマンドラインに --dotnetcoresdk=2.0.3 を追加します。

  • --mono — デフォルトでは、Mono のインストールは自動検出されます。自動検出によって競合が発生した場合は、このオプションを使用して、特定の Mono インストールを指すことができます。Mono を無視するには、引数なしで使用してください。例: --mono=/Library/Frameworks/Mono.framework/Versions/Current/bin/mono

  • --targets-for-references — プロジェクトの参照アセンブリを取得するために実行されるカスタム MSBuild ターゲットの名前。ターゲットは、プロジェクトファイルまたは .targets ファイルのいずれかで定義されます。複数の値はセミコロンで区切られます。例: --targets-for-references="GetReferences"

  • --targets-for-items — プロジェクトの他のアイテム(コンパイルアイテムなど)を取得するために実行されるカスタム MSBuild ターゲットの名前。ターゲットは、プロジェクトファイルまたは .targets ファイルのいずれかで定義されます。複数の値はセミコロンで区切られます。例: --targets-for-items="GetCompileItems"

補助パラメーター

  • --verbosity — デフォルトでは、CleanupCode はログに情報メッセージのみを表示します。このパラメーターを使用して、ログに書き込まれる情報の量を次のレベルで変更します(順序は詳細から順になります): [OFF, FATAL, ERROR, WARN, INFO, VERBOSE, TRACE]
    例: CleanupCode で問題が発生した場合は、ReSharper サポートに連絡して、すべての TRACE メッセージとログファイルを共有できます: --verbosity=TRACE > [path_to_log_file]

  • --caches-home — CleanupCode がキャッシュするデータのカスタムの場所を指定できます。デフォルトでは、設定ファイルがない限り、%LOCALAPPDATA% ディレクトリが使用されます。設定ファイルがある場合は、そこで指定されたものが使用されます。このパラメーターは、キャッシュに高速 SSD ディスクを使用する場合、またはすべてのビルド処理データを 1 か所に保存する場合に役立ちます。

  • --config-create および --config - これらのオプションを使用すると、構成ファイルで上記のパラメーターを渡すことができます。最初のオプションは現在のパラメーターに従って設定ファイルを作成します。2 番目のオプションはこのファイルからパラメーターをロードするために使用されます。

  • --debug (-d) — このオプションを使用して、CleanupCode の実行の詳細を出力に追加します。CleanupCode に問題がある場合は、これらの詳細がサポートチーム(英語)に連絡するときに役立ちます。

ReSharper 設定を制御するパラメーター

  • --settings — デフォルトでは、CleanupCode は、デフォルト設定を「ソリューションチーム共有」レイヤー SolutionName.DotSettings の ReSharper 設定でオーバーライドします(存在する場合)。必要に応じて、このパラメーターを使用して、他のすべての設定をオーバーライドする別の .DotSettings ファイルを指定できます。例:
    --settings="C:\Work\MyRsSettings.DotSettings"

  • --disable-settings-layers -dsl — 指定された設定レイヤーを無効にします。許容値: GlobalAllGlobalPerProductSolutionSharedSolutionPersonal

  • --no-buildin-settings — グローバル、ソリューション、プロジェクト設定レイヤーからの設定を抑制します。 --disable-settings-layers: GlobalAll; GlobalPerProduct; SolutionShared; SolutionPersonal; ProjectShared; ProjectPersonal と同等

MS ビルド: 考えられる問題と解決策

CleanupCode がターゲットソリューションファイルを受信すると、クリーンアップするファイルのリストを作成し、言語バージョンなどの多くのプロパティを初期化する必要があります。CleanupCode は MSBuild を使用して、プロジェクトファイルからこの情報を取得します。

ほとんどの場合、CleanupCode は自動的にターゲットソリューションのための適切な MSBuild の実行可能ファイルを検索します。ただし、ソリューションランタイムのバージョンがインストールされている .NET SDK のバージョンと一致しない場合など、自動検出を妨げる問題がある可能性があります。

CleanupCode は、The current .NET SDK does not support targeting .NET Core 3.0.The SDK 'Microsoft.NET.Sdk' specified could not be found. などのエラーが生じた場合は、追加の使用して、正しい SDK またはランタイムを指定する必要がパラメーターを。.NET を使用する場合、MSBuild はすでにマシンにインストールされており、多くの場合、複数のインストールが存在するため、ターゲットソリューションに適合するものを提供する必要があります。

ほとんどの場合、パラメーターを 1 つだけ追加する必要があります。--toolset または --dotnetcore です。複雑な場合、たとえば、マシンへのさまざまなインストールや、MSBuild のカスタムバージョンを使用する場合、他のパラメーター --toolset-path--mono--targets-for-references--targets-for-items が必要になる場合があります。

--dotnetcore または --dotnetcoresdk を指定すると、CleanupCode は .NET Core SDK の MSBuild を使用しようとし、他は無視します。例: あなたのマシン上の MSBuild v 16.0 のいくつかのインストールを持っていると --dotnetcore と .NET Core インストールへのパスを指定した場合、CleanupCode が指定したインストールからの .NET のコアの MSBuild を使用します。 --dotnetcore が指定されていない場合、CleanupCode はソリューションディレクトリを調べ、global.json を見つけようとし、そこで指定された SDK バージョンを使用します。何も見つからない場合、利用可能な最新の SDK バージョンが使用されます。

プロジェクト参照: 考えられる問題と解決策

CleanupCode は、MSBuild を使用して、参照されているプロジェクトとアセンブリのシンボルを解決します。環境に応じて異なる参照を使用できる 2 つのプロジェクトプロパティがあります: Platform および ConfigurationCleanupCode を実行する環境がプロジェクトが最後にビルドされた環境と異なる場合、Can't resolve reference XXX: Reference wasn't resolved by MsBuild または Could not resolve this reference. Could not locate the assembly "XXX" などのエラーを受け取る可能性があります。

このようなエラーが発生した場合は、出力を確認して、ビルド構成に不一致があるかどうかを確認してください。たとえば

..... JetBrains Inspect Code 2020.1 Running in 64-bit mode, .NET runtime 4.0.30319.42000 under Microsoft Windows NT 10.0.17134.0 Custom settings layer is mounted. Used file XXXXX.DotSettings Using toolset version 15.0 from "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin" Configuration: Debug, Platform: x86 .....

上記では、プロジェクトファイルで指定されたプラットフォームが x86 であることがわかりますが、ツールは 64 ビットモードで実行されています。これを修正するには、--properties パラメーター --properties:Platform=x64;Configuration=Debug を使用してターゲットプラットフォームと構成を明示的に指定します。

サポートされる言語

CleanupCode は、次の言語をサポートしています。

関連ページ:

コードのクリーンアップ | ReSharper

ReSharper を使用すると、フォーマットやその他のコードスタイル設定を一括モードで適用して、1 つ以上のファイル、プロジェクト、またはソリューション全体でコードスタイル違反を即座に排除できます。コードクリーンアッププロファイル:コードのクリーンアップには、ニーズに応じてさまざまな場合に適用できるさまざまな設定(プロファイル)があります。提供時の状態で使用可能な 3 つのデフォルトプロファイルがあります。コードのフォーマットのみを適用するビルトイン: コードの整形、コードのフォーマットとコ...

dupFinder コマンドラインツール | ReSharper

dupFinder は、C# と Visual Basic .NET コードの重複を検出する無料のクロスプラットフォームコマンドラインツールです。しかし、JetBrains ツールである dupFinder は、スマートな方法でそれを行います。デフォルトでは、コードフラグメントが同一である場合だけでなく、異なる変数、フィールド、メソッド、型またはリテラルが含まれている場合でも、構造的に類似している場合、コードフラグメントを重複と見なします。もちろん、許可された類似度と、複製されたフラグメントの最...

InspectCode コマンドラインツール | ReSharper

ReSharper の最も注目すべき機能の 1 つであるコードインスペクションは、IDE を開かなくても使用できます。無料のクロスプラットフォームコマンドラインツールの InspectCode では、ReSharper のすべてのインスペクションを適用するために、少なくとも 1 つのパラメーター(ソリューションファイル)が必要です。InspectCode を実行する ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用して、オペレーティングシステ...

コマンドラインからのカバレッジ分析 | dotCover

dotCover コンソールランナーは、アーカイブ、NuGet パッケージ(Windows、macOS、Linux)、または .NET グローバルツールとして無料で配布されるコマンドラインツールです。このツールを使用すると、次のことができます。テストランナー(MSTest、NUnit、xUnit、MSpec など)の実行を制御し、実行されたテストのカバレッジをカバレッジスナップショットに記録し、レポートを生成します。カバレッジスナップショットをマージします。たとえば、プロジェクトまたはソリューショ...

ReSharper 設定の管理と共有 | ReSharper

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

コードフォーマットルールの管理と適用 | ReSharper

コードスタイルの重要な点は、コードのフォーマット方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。ReSharper コードフォーマットルールの広範なセットには、デフォルトの Visual Studio フォーマットオプションと多数のベストプラクティスを考慮したデフォルト構成があります。フォーマットルールのすべての詳細を構成し、コードにルールを適用できます。これらのルールは、ReSharper がコード補完およびコ...