ReSharper 2020.1ヘルプ

CleanupCodeコマンドラインツール

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

CleanupCodeを実行します。

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

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

  3. ターゲットソリューションを構築します。

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

    cleanupcode.exe YourSolution.sln

DotSettingsでCleanupCodeを構成する

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

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

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

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

コマンドラインパラメーターで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 Core 3.xの2019および16.0の場合、このオプションは機能しない可能性があります。

  • --toolset-path —このオプションを使用して、MSBuildへの正確なパスを指定します。 --toolset-path="c:\tools\msbuild\bin\MsBuild.exe":カスタムMSBuildのインストールを持っているとCleanupCode、元とそれを使用したい場合に便利かもしれません。

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

  • --dotnetcoresdk —このオプションを使用して、MSBuildを提供する.NET Core SDKバージョンを指定します。例:SDKの2.0.3および3.0.100と.NETのコアをインストールした場合、CleanupCodeは(プレビューバージョンを含む、最新の)3.0.100を好むでしょう。.NETのコア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 —指定された設定レイヤーを無効にします。許容値: GlobalAll , GlobalPerProduct , SolutionShared , SolutionPersonal

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

MSBuild。考えられる問題と解決策

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 および Configuration。CleanupCodeを実行する環境がプロジェクトが最後にビルドされた環境と異なる場合、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は、次の言語をサポートしています。

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is not availableFeature is not availableFeature is not availableFeature is not available
最終更新日: 2020年7月2日

関連ページ:

コードのクリーンアップ

コマンドラインユーティリティを使用してコードのクリーンアップを実行することもできます。ReSharperを使用すると、フォーマット設定やその他のコードスタイル設定を一括モードで適用して、1つ以上のファイル、プロジェクト、またはソリューション全体のコードスタイル違反を即座に排除できます。一貫性のない名...

dupFinderコマンドラインツール

dupFinderは、C#とVisual Basic .NETコードの重複を検出する無料のクロスプラットフォームコマンドラインツールです。しかし、JetBrainsツールであるdupFinderは、スマートな方法でそれを行います。デフォルトでは、コードフラグメントが同一である場合だけでなく、異なる変...

InspectCodeコマンドラインツール

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

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

コードインスペクションを実行し、コマンドラインから分析を複製することもできます。dotCoverコンソールランナーは、アーカイブまたはNuGetパッケージ(Windows、macOS、Linux)として無料で配布されるコマンドラインツールです。このツールを使用すると、次のことができます。あらゆるテス...

ReSharper設定の管理と共有

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

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

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。多数のReSharperコードフォーマットルールには、デフォルトのVisual Studioフォーマットオプションと多数のベ...