CleanupCode コマンドラインツール
CleanupCode は無料のクロスプラットフォームコマンドラインツールであり、プロジェクトまたはソリューションでコードのクリーンアップ(フォーマットの修正、構文スタイルの適用、冗長性の削除など)を実行して、コードベースを統一することができます。
ソリューションやプロジェクトがなくても、指定した .NET ソースファイルのセットを再フォーマットすることもできます。
CleanupCode を実行する
ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用して、オペレーティングシステムを選択します。
コマンドラインツールパッケージを任意のディレクトリに解凍します。
解凍する前に、ダウンロードした .zip ファイルが「ブロック解除」されていることを確認してください。ファイルを右クリックし、Properties を選択して、ブロック解除するをクリックします。これを行わないと、.NET Framework が部分的に信頼してアプリケーションをロードします。つまり、アプリケーションが正しくロードまたは実行されません。
ソリューションをクリーンアップし、ソリューションファイルを引数として使用する場合は、ツールを実行する前に、ソリューションが適切なビルド構成を使用してビルドされていることを確認してください。
次のコマンドを実行します。
cleanupcode.exe YourSolution.slnソリューション全体をクリーンアップする、または
cleanupcode.exe File1 File2 File3 ...1 つ以上の .NET ファイルをクリーンアップする、または
cleanupcode.exe <FileMaskForTargetFiles>ファイルマスクに一致する .NET ファイルのセットをクリーンアップします。
または、.NET ツールとしての ReSharper コマンドラインツールをインストールして、
jbコマンドで CleanupCode を実行することもできます。
DotSettings で CleanupCode を構成する
JetBrains Rider を使用してターゲットソリューションを以前に作業したことがある場合は、すでにコードスタイル設定を構成している可能性があります。もしそうなら、CleanupCode は .DotSettings ファイルであなたのカスタム設定を見つけて、適用します。
CleanupCode は、DotSettings ファイルから次の設定を読み取ります。
CI サーバーで CleanupCode を構成する場合は、JetBrains Rider、ソリューションチーム共有レイヤーに設定を保存するを使用してローカルですべての構成を行い、ソリューションディレクトリ内の結果の YourSolution.sln.DotSettings ファイルを VCS にコミットできます。サーバー上の CleanupCode は、これらの設定を見つけて適用します。
別の方法として、--settings パラメーターを介して共有 .DotSettings ファイルへのパスを指定することができます(他の設定ファイルの設定がある場合はそれを上書きします)。
EditorConfig で CleanupCode を構成する
コードスタイル設定は EditorConfig を介して行うことができます。これらの設定は、ソリューション階層の異なるレベルの .editorconfig ファイルに保存できます。これらのファイルは通常、VCS に配置され、そこで定義された設定がプロジェクトチーム間で共有されます。
JetBrains Rider を使用すると、EditorConfig を使用して、JetBrains Rider の設定ダイアログで使用できるコードスタイル設定を定義できます。サポートされている EditorConfig プロパティの名前と説明は、EditorConfig リファレンスにあります。
.editorconfig ファイルで定義されたコードスタイルプロパティは、この .editorconfig ファイルが適用されるスコープの JetBrains Rider 設定で定義された同じプロパティを上書きすることに注意することが重要です。
コマンドラインパラメーターで CleanupCode を構成する
クリーンアップパラメーター
--profile— 実行するクリーンアップタスクを一覧表示するコードクリーンアッププロファイル。デフォルトでは、CleanupCode はビルトイン: 完全クリーンアッププロファイルで指定されたコードクリーンアップタスクを適用します。これは、ファイルヘッダーの更新を除くすべての利用可能なクリーンアップタスクです。
さらに 2 つの組み込みプロファイルがあります。コードフォーマット設定 のみを適用するビルトイン: コードの整形と、コードフォーマット設定とコード構文スタイルを適用するビルトイン: 再フォーマットして構文スタイルを適用です。
これらのプロファイルの 1 つまたは任意のカスタムプロファイルを使用するには、
--profileパラメーターを介してプロファイル名を渡します(例:--profile="Built-in: Reformat Code" YourSolution.sln)。--include/--exclude— クリーンアップ中に含める / 除外するファイルを定義するファイルマスク。--includeと--excludeの両方が定義され、同じファイルセットをカバーする場合、--excludeが優先されます。ファイルマスクで Ant スタイルのワイルドカード(英語)を使用できます。
ディレクトリ区切り文字を除く単一文字に一致する
?ディレクトリ区切り文字を除く 0 文字以上に一致する
*ディレクトリ区切り文字を含む任意の数の文字に一致する
**OS パス形式に関係なくディレクトリ区切り文字と一致する
/または\
たとえば、パターン
**Test?\**.*は次のファイルと一致します。C:\Projects\MyTestX\data\file_one.txt
/home/projects/TestY/file_two.xml
だがしかし:
C:\Projects\Test\data\file_one.txt
/home/projects/TestY/file_two
複数のパスまたはワイルドカードを指定するには、セミコロン
;で区切るか、--include/--excludeパラメーターを複数回使用します。
MSBuild 関連のパラメーター
--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 への正確なパスを指定します。カスタム MSBuild インストールがあり、それを CleanupCode で使用する場合に役立ちます (例:--toolset-path="c:\tools\msbuild\bin\MsBuild.exe")。--dotnetcore— デフォルトでは、.NET インストールは自動検出されます。自動検出で競合が発生した場合は、このオプションを使用して特定の .NET インストールを指定できます。.NET Core を無視するには、引数なしで使用します。例:--dotnetcore=/usr/local/share/dotnet/dotnet--dotnetcoresdk— このオプションを使用して、MSBuild を提供する .NET SDK バージョンを指定します。例: .NET を SDK 5.0.100 および 6.0.302 とともにインストールした場合、CleanupCode は 6.0.302 (プレビューバージョンを含む最新版) を優先します。CleanupCode を .NET SDK 5.0.100 とともに実行する場合は、コマンドラインに--dotnetcoresdk=5.0.100を追加します。--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]--LogLevel— このパラメーターを使用して、--LogFileまたは--LogFolderで指定された、ログファイルに書き込まれる情報の量を制御します。次のレベルがあります (順序は少ないものから詳細なものへ):[OFF, FATAL, ERROR, WARN, INFO, VERBOSE, TRACE].例: CleanupCode で問題が発生した場合は、JetBrains Rider サポートに連絡して、すべての TRACE メッセージとログファイルを共有できます:
--LogLevel=TRACE--LogFile— このパラメーターを使用して、CleanupCode からのメッセージのログファイルへの絶対パスを指定します。MSBuild および Roslyn からのログも必要な場合は、代わりに--LogFolderパラメーターを使用します。--LogFolder— このパラメーターを使用して、CleanupCode からのログと MSBuild および Roslyn からのログを書き込むディレクトリへの絶対パスを指定します。CleanupCode からのログのみが必要な場合は、代わりに--LogFileパラメーターを使用します。--caches-home— CleanupCode がキャッシュするデータのカスタムの場所を指定できます。デフォルトでは、設定ファイルがない限り、%LOCALAPPDATA% ディレクトリが使用されます。設定ファイルがある場合は、そこで指定されたものが使用されます。このパラメーターは、キャッシュに高速 SSD ディスクを使用する場合、またはすべてのビルド処理データを 1 か所に保存する場合に役立ちます。--config-createおよび--config- これらのオプションを使用すると、構成ファイルで上記のパラメーターを渡すことができます。最初のオプションは現在のパラメーターに従って設定ファイルを作成します。2 番目のオプションはこのファイルからパラメーターをロードするために使用されます。--debug (-d)— このオプションを使用して、CleanupCode の実行の詳細を出力に追加します。CleanupCode に問題がある場合は、これらの詳細がサポートチーム(英語)に連絡するときに役立ちます。--eXtensions (-x)— 指定されたプラグインをインストールして有効にします。プラグインは ID で指定されます。ID は JetBrains マーケットプレイス(英語)のプラグインページで確認できます。目的のプラグインを見つけて、概要タブの一番下までスクロールします。
例: JetBrains による StyleCop(英語) プラグインのプラグイン ID は
StyleCop.StyleCopであり、このプラグインで CleanupCode を実行するには、コマンドラインに-x=StyleCop.StyleCopを追加する必要があります。複数のプラグインを指定するには、それらの ID をセミコロンで区切ります。
--source— プラグインをインストールするカスタムパッケージソースを指定できます。これは、プラグインを含む .nupkg ファイルが配置されているディレクトリです(例:--source="C:\plugins")。何も指定されていない場合、CleanupCode は JetBrains マーケットプレイスでプラグインを検索します。--measure— 特定のターゲットソリューションを使用する特定のハードウェアでツールを実行するときに、最適ではないパフォーマンスが発生した場合に役立つ診断オプション。このオプションを次のいずれかの引数[sampling | timeline (Windows-only) | memory]とともに使用して、プロファイリングの種類を定義します。例:CleanupCode.exe YourSolution.sln --measure=timeline実行が終了すると、CleanupCode は実行スナップショットを作成し、スナップショットファイルへのパスを表示します。JetBrains ツールを使用してスナップショットを調べることができます。
サンプリングまたはタイムラインプロファイリング: 結果の .zip ファイルを分析するには、それを解凍し、サンプリングスナップショットファイル (.dtp) またはタイムラインスナップショットファイル (.dtt) を JetBrains dotTrace で開きます。
メモリプロファイリング: 結果の dotMemory ワークスペースファイル (.dmw) を分析するには、JetBrains dotMemory で開きます。
--version (-v)— このオプションを使用して、ツールの現在のバージョンを表示して終了します。--no-updates— デフォルトでは、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 SDK の MSBuild を使用し、その他は無視します。例: マシンに MSBuild、v 16.0 が複数インストールされていて、--dotnetcore を使用して .NET インストールへのパスを指定すると、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" などのエラーを受け取る可能性があります。
このようなエラーが発生した場合は、出力を確認して、ビルド構成に不一致があるかどうかを確認してください。たとえば
上記では、プロジェクトファイルで指定されたプラットフォームが x86 であることがわかりますが、ツールは 64 ビットモードで実行されています。これを修正するには、--properties パラメーター --properties:Platform=x64;Configuration=Debug を使用してターゲットプラットフォームと構成を明示的に指定します。
関連ページ:
コードのクリーンアップ
JetBrains Rider を使用すると、フォーマットやその他のコードスタイル設定を一括モードで適用して、1 つ以上のファイル、プロジェクト、ソリューション全体でコードスタイル違反を即座に排除できます。コードクリーンアッププロファイル:コードのクリーンアップには、ニーズに応じてさまざまな場合に適用できるさまざまな設定(プロファイル)があります。提供時の状態で使用可能な 3 つのデフォルトプロファイルがあります。コードのフォーマットのみを適用するビルトイン: コードの整形、コードのフォーマッ...
InspectCode コマンドラインツール
JetBrains Rider の最も注目すべき機能の 1 つであるコードインスペクションは、IDE を開かなくても使用できます。無料のクロスプラットフォームコマンドラインツールの InspectCode では、JetBrains Rider のインスペクションのすべてを適用するために、少なくとも 1 つのパラメーター (ソリューションファイル) が必要です。InspectCode を実行する ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用...
コマンドラインツールによるカバレッジ分析
dotCover コマンドラインツールを使用すると、次のことが可能になります。任意のテストランナー(MSTest、NUnit、xUnit、MSpec など)を使用してカバレッジ分析を実行し、実行されたテストのカバレッジをカバレッジスナップショットに記録します。カバレッジスナップショットをマージコマンドでマージします。たとえば、異なるテストフレームワークを使用するユニットテストのスナップショットを結合します。report コマンドを使用して、さまざまな形式でカバレッジレポートを生成します。その他多数...
レイヤーベースの設定
Rider 設定ダイアログでは、ページアイコンを見て、特定のページに使用されている設定管理メカニズムを確認できます。任意のアイコンでマークされていないページは、ユーザープロファイルに保存されている IDE 設定をホストします。レイヤーベースの設定は ReSharper と互換性があるため、ReSharper を使用している場合、チームメンバーのいずれかがそれを使用している場合、Rider は ReSharper で構成した設定を読み取って適用できます。「ソリューションパーソナル」および「ソリュ...
フォーマットルールを構成する
フォーマットルールは非常に高いレベルの詳細に設定できます。例: 特定の演算子の周囲に空白を配置するか、入れ子になった文をインデントするかを定義できます。設定でコードフォーマットルールを構成するを押すか、メニューから (Windows および Linux) または (macOS) を選択します。ページを使用して、言語固有のフォーマットを構成します。これらのページでは、下部にあるプレビュー領域を使用して、JetBrains Rider が特定の環境設定をコードに適用する方法を表示できます。設定ダイア...
構文スタイル
コードスタイルの側面の 1 つは、互換性のある言語構文構造を使用する方法です。例: 以下の 2 つのメソッド定義は、コンパイラーの観点からは同じですが、構文構造の選択により、それらは異なって見えます。[Conditional(