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 を構成する
ReSharper を使用してターゲットソリューションを以前に作業したことがある場合は、すでにコードスタイル設定を構成している可能性があります。もしそうなら、CleanupCode は .DotSettings ファイルであなたのカスタム設定を見つけて、適用します。
CleanupCode は、DotSettings ファイルから次の設定を読み取ります。
コードのフォーマットの規則 ( および )
構文スタイル ( )
対象言語 (
)
CI サーバーで CleanupCode を構成する場合は、ReSharper、ソリューションチーム共有レイヤーに設定を保存するを使用してローカルですべての構成を行い、ソリューションディレクトリ内の結果の YourSolution.sln.DotSettings ファイルを VCS にコミットできます。サーバー上の CleanupCode は、これらの設定を見つけて適用します。
別の方法として、--settings
パラメーターを介して共有 .DotSettings ファイルへのパスを指定することができます(他の設定ファイルの設定がある場合はそれを上書きします)。
EditorConfig と Clang 形式で CleanupCode を構成する
すべての言語の場合は EditorConfig で、C++、JavaScript、TypeScript の場合は Clang 形式を使用して、コードスタイル設定を構成することもできます。これらの設定は、ソリューション階層のさまざまなレベルの .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 つの組み込みプロファイルがあります。コードフォーマット設定 のみを適用するビルトイン: コードの整形と、コードフォーマット設定とコード構文スタイルを適用するビルトイン: 再フォーマットして構文スタイルを適用です。
これらのプロファイルの 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 で問題が発生した場合は、ReSharper サポートに連絡して、すべての 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)
— このオプションを使用して、ツールの現在のバージョンを表示して終了します。
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
および Configuration
CleanupCode を実行する環境がプロジェクトが最後にビルドされた環境と異なる場合、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
を使用してターゲットプラットフォームと構成を明示的に指定します。
サポートされる言語
CleanupCode は、次の言語をサポートしています。
関連ページ:
コードのクリーンアップ
ReSharper を使用すると、フォーマットやその他のコードスタイル設定を一括モードで適用して、1 つ以上のファイル、プロジェクト、ソリューション全体でコードスタイル違反を即座に排除できます。コードクリーンアッププロファイル:コードのクリーンアップには、ニーズに応じてさまざまな場合に適用できるさまざまな設定(プロファイル)があります。提供時の状態で使用可能な 3 つのデフォルトプロファイルがあります。コードのフォーマットのみを適用するビルトイン: コードの整形、コードのフォーマットとコードの...
ReSharper コマンドラインツール
ReSharper コマンドラインツールは、無料のクロスプラットフォームスタンドアロンツールのセットであり、自動コード品質手順を CI、バージョン管理、その他のサーバーに統合できます。コマンドラインツールパッケージには次のツールが含まれています。InspectCode は、何百もの ReSharper コードインスペクションを実行します。CleanupCode は、コードスタイルの違反を即座に排除し、一様なコードベースを保証します、ReSharper コマンドラインツールを .NET ツールとしてイン...
InspectCode コマンドラインツール
ReSharper の最も注目すべき機能の 1 つであるコードインスペクションは、IDE を開かなくても使用できます。無料のクロスプラットフォームコマンドラインツールの InspectCode では、ReSharper のインスペクションのすべてを適用するために、少なくとも 1 つのパラメーター (ソリューションファイル) が必要です。InspectCode を実行する ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを使用して、オペレーティングシ...
コマンドラインからのカバレッジ分析
dotCover コマンドラインツールを使用すると、次のことが可能になります。任意のテストランナー(MSTest、NUnit、xUnit、MSpec など)を使用してカバレッジ分析を実行し、実行されたテストのカバレッジをカバレッジスナップショットに記録します。マージコマンドを使用してカバレッジスナップショットをマージします。たとえば、異なるテストフレームワークを使用するユニットテストのスナップショットを結合します。レポートコマンドを使用して、さまざまな形式でカバレッジレポートを生成します。さらに...
ReSharper 設定の管理と共有
ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...
フォーマットルールを構成する
フォーマットルールは非常に高いレベルの詳細に設定できます。例: 特定の演算子の周囲に空白を配置するか、入れ子になった文をインデントするかを定義できます。オプションでコードフォーマットルールを構成するメインメニューからを選択するか、Alt+R O を押します。ページを使用して、すべての言語で適用されるオプションを確認し、設定します。ページを使用して、言語固有のフォーマットを構成します。これらのページでは、下部にあるプレビュー領域を使用して、ReSharper がコードに特定の設定を適用する方法を表示...