ReSharper 2020.2ヘルプ

CleanupCodeコマンドラインツール

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

CleanupCodeを実行します。

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

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

  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 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 Core 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 available in C#Feature is available in Visual Basic .NETFeature is available in C++Feature is available in HTMLFeature is available in ASP.NETFeature is available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is available in CSSFeature is available in XMLFeature is available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON
最終更新日:

関連ページ:

コードのクリーンアップ

ReSharper | 編集 | コードのクリーンアップ...コマンドラインユーティリティを使用してコードのクリーンアップを実行することもできます。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 | 編集 | コードの再フォーマットコードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。ReSharperコードのフォーマットルールの豊富なセットには、デフ...