ReSharper 2019.3ヘルプ

ソリューションのビルド

ReSharperを使用すると、複数の並列プロセスを使用して段階的にソリューションを構築できます。ネイティブVisual Studioのビルド管理の代わりにReSharper ビルドを使用することができます。

ReSharperはMSBuildに代わるものではありません - あなたのプロジェクトはまだ普通にビルドされています。違いは、更新が不要なプロジェクトは再構築されないことです。

ReSharperビルドの開始

デフォルトでは、ReSharperビルドは無効になっています。有効にするには、次のいずれかの操作を行います。

  • ReSharperオプションのツール | ReSharper ビルド | 一般ページに移動し、ビルドエンジンセクションのReSharper ビルドを選択します。

  • ビルド & 実行ウィンドウReSharper | Windows | ReSharper ビルド)を開き、ReSharperビルドを有効にするをクリックします。

ReSharperビルドが有効になっている場合、ソリューションを構築するにはいくつかの方法があります。

  • Visual Studioビルドコマンドのいずれか(たとえば、ビルド | ソリューションのビルド Ctrl+Shift+B )を使用します。これらのコマンドとショートカットはすべて、ReSharperビルドによってオーバーライドされます。

  • ビルド ThemedIcon SolBuilderDuoBuild Screen Gray をクリックするか、ReSharperビルド&実行ウィンドウのツールバーのドロップダウンメニューにある他のビルドコマンドを選択します。

  • 特定のプロジェクトをビルド、リビルド、またはクリーンアップするには、ビルド & 実行ウィンドウでプロジェクトを右クリックし、コンテキストメニューで対応するコマンドを選択します。

ReSharperはまた、すべてのVisual Studioバージョンで動作するNuGet復元ツールを独自に実装しています。デフォルトでは、ReSharperは各ビルドの前にすべての関連するNuGetパッケージがリストアされるようにしますが、ReSharperオプションのツール | ビルド | 一般ページで対応するチェックボックスをオフにすることで無効にすることができます。自動復元が無効になっている場合は、ビルド & 実行ウィンドウのツールバーのNuGetパッケージを復元する ThemedIcon NuGet Screen Gray をクリックして手動で実行することができます。
NuGet restorerは、このオプションページでログが有効になっている場合、ログを出力に書き込みます。ReSharperオプションのツール | NuGetリストラページで、ログメッセージレベルを設定したり、ログ情報を表示したりすることもできます。

ビルドプロセス

初めてReSharperビルドを実行すると、設定に従って複数の並列プロセスを使用してすべてのプロジェクトがビルドされます。すべてのビルド管理はプロセス外で行われるため、Visual Studioはビルドの実行中も応答し続けます。

次回ソリューションをビルドするとき、ReSharperはサポートされているビルド項目が変更されたプロジェクトのみをビルドします。変更が他のプロジェクトで使用されているパブリックタイプに影響する場合は、依存プロジェクトも再構築されます。

変更の影響を受けないプロジェクトは、追加のすべてのビルドロジックを含めて完全にスキップされます。スキップされたプロジェクトに対してビルド前およびビルド後のイベント(英語)および/またはBeforeBuildとAfterBuild MSBuildのターゲット(英語)を実行する場合は、ReSharperオプション(Alt+R,,O)のツール | ReSharper ビルド | 一般ページの対応するチェックボックスを使用します。

ReSharper ビルドは、MSBuildのタスク、ターゲット、およびプロジェクトへの入力と出力の依存関係グラフを維持し、ファイルシステムの変更を効率的に監視します。ビルドを開始すると、ReSharper ビルドは、MSBuildを呼び出すことなく、タイムスタンプが最新であるかどうかを知っています。タイムスタンプが最新の場合、プロジェクトはスキップされます。

デフォルトでは、ReSharper ビルドはVisual Studio設定で指定されたものと同じMSBuildバージョンを使用し、6つのプロセスで並行して実行されます。必要に応じて、MSBuildバージョンを明示的に指定し、ReSharperオプション(Alt+R,,O)のツール | ReSharper ビルド | 一般ページでプロセス数を変更できます。

構築プロセスと要約はビルド & 実行ウィンドウで視覚化されます:

ReSharper: Solution Builder window

ソリューションのすべてのプロジェクトは、特定の色を持つグリッド内で視覚化されます。また、プロジェクト上にマウスを置くと、状態を説明するツールチップが表示されます。色はプロジェクトのビルド状態を表します。

  • 濃い灰色 - プロジェクトはクリーンアップされているか、ビルドされていません。

  • グレー - プロジェクトは、ソリューションビルドから除外されるか、特定のプロジェクトに対してのみビルドを実行し、関連のないプロジェクトはビルドされないという2つの理由のいずれかでビルドされません。

  • ライトブルー - プロジェクトは前回の実行でビルドされたもため、変更はありません。

  • - プロジェクトは前回の実行で構築されたもため、変更はありません。それが参照するプロジェクトは個人的な変更のみを持ちます。

  • - プロジェクトが変更されたか、依存プロジェクトの1つがパブリックに変更された場合、警告なしに正常に再構築されました。

  • - プロジェクトが変更されたか、依存プロジェクトの1つがパブリックに変更された後、警告付きで正常に再構築されました。

  • - プロジェクトが変更されたか、依存プロジェクトの1つがパブリックに変更されたため、プロジェクトのビルドに失敗しました。

現在のビルドをキャンセルする必要がある場合は、メインメニューのReSharper | ビルド | ビルドをキャンセルするを選択します。

ビルド結果の分析

ビルドが完了すると、ReSharperはビルドエラー(およびオプションで警告)をビルド結果ウィンドウに表示します。

Grouping and sorting build results

デフォルトでは、ビルドエラーがある場合にのみ結果が表示されます。必要に応じて、ReSharperオプションのツール | ReSharper ビルド | 一般ページでビルド結果を表示する...セレクタを使用して結果を警告とともに表示し、常に結果を表示することができます。

ビルド結果ウィンドウでは、次のいずれかの方法でビルド出力をさらに調べることができます。

  • グループ化セレクタの複数のオプションの1つを使用して結果をグループ化する便利な方法を選択します。

  • ビルドエラーがある場合、これらのエラーのみがウィンドウに表示されます。コンパイルの警告も表示したい場合は、ツールバーの警告を表示 ThemedIcon Warning Screen Gray をクリックします。

  • ビルドメッセージ間を移動するには、前へ ThemedIcon Up Screen Gray / 次へ ThemedIcon Down Screen Gray ボタンまたは Shift+F8 / F8 ショートカットを使用します。

  • エラーまたは警告を発生させたコードをプレビューするには、プレビューの表示 ThemedIcon PreviewToggle Screen Gray をクリックするか、Ctrl+Pを押します。ウィンドウの左または下のいずれかに配置できるプレビューウィンドウでは、エラーまたは警告が赤色または青色のくすんだ色で強調表示されます。

  • エラーまたは警告をダブルクリックして、エディターで対応するコード行に移動します。

ReSharperビルドの設定

ReSharper | オプション | ツール | ReSharper ビルドのReSharperオプションページでReSharper ビルドを設定することができます。

ReSharperオプション(Alt+R,,O)の環境 | 製品と機能ページのReSharper ビルドチェックボックスをオフにすることにより、ReSharperソリューションビルダーを無効にできます。

ビルドからアイテムを除外する

ソリューションを構築するときにプロジェクトを構築する必要がない場合は、除外してビルド時間を短縮することができます。これを行うには、ReSharperオプションのツール | ReSharper ビルド | ヒューリスティックページに移動し、決して建ててはいけないプロジェクトセクションで除外するプロジェクトまたはソリューションフォルダーをマークします。このセクションの検索ボックスを使用して、一致する項目のみを表示するようにソリューションツリーをフィルタリングすることができます。

ソリューションエクスプローラーでこれらの項目に対してビルドコマンドを呼び出しても、除外項目を作成することはできません。

プロジェクトを除外すると、ソースファイルが古くなっていたり、参照されているプロジェクトに公開APIの変更があっても、再構築されません。これは非常に劇的で、未知のコンパイルエラーにつながる可能性がありますが、コンパイルが遅く、現在の開発タスクでは使用されていないプロジェクトを一時的に除外すると便利です。これは、Visual Studioでプロジェクトをアンロードしてコンパイルしないようにするのに似ていますが、ナビゲーションとリファクタリングを可能にするためにソースファイルはReSharperで引き続き使用できます。ソース管理にコミットする前に再有効化と再構築を行うか、入力時にソリューション全体の分析を使用してコンパイルエラーを表示することをお勧めします。

特定のプロジェクトを強制的に構築する

ReSharper ビルドは、以前に正常にビルドされていてもプロジェクトをビルドしておらず、その後変更を加えていません。変更から独立していくつかのプロジェクトを構築する必要がある場合は、ビルドを強制することができます。これを行うには、常に構築されるべきプロジェクトセクションにビルドするプロジェクトまたはソリューションフォルダーをマークします。このセクションの検索ボックスを使用して、一致する項目のみを表示するようにソリューションツリーをフィルタリングすることができます。

プロジェクトを「常にビルド」としてマークすると、ReSharperビルドはこのプロジェクトにヒューリスティックを適用することはなく、常にMSBuildに渡します。これは、プロジェクトが常に再構築および再コンパイルされることを意味するのではなく、MSBuildが常に呼び出されることを意味します - MSBuildは引き続きタイムスタンプをチェックし、増分ビルドを実行する可能性があります。これは、ReSharperビルドが追跡できないカスタムビルドステップを持つプロジェクトに便利です(ただし、カスタムビルドステップは、インクリメンタルビルドをサポートする適切なMSBuildターゲットとして書き直すことをお勧めします)。

ビジュアライゼーション設定

デフォルトでは、ReSharperビルドを開始すると、ビルド & 実行ウィンドウが起動され、ビルドの進行状況がVisual Studioのステータスバーにも表示されます。必要に応じて、ReSharperオプションのツール | ReSharper ビルド | 一般ページでこの動作を設定できます。

サポートされているビルドアイテム

再ビルドするかどうかを決定するために以前にビルドされたプロジェクトの変更を評価するとき、ReSharperは最も一般的なMSBuildアイテム(英語)タイプのビルド項目をチェックします。

"ApplicationDefinition", "Page", "Compile", "Content", "EmbeddedResource", "Resource", "SplashScreen", "XamlAppDef", "EntityDeploy", "DesignDataWithDesignTimeCreatableTypes", "DesignData"

タイプ None および上記にリストされていない他のタイプのビルド項目の変更は、デフォルトで無視されます。プロジェクトビルドが他のカスタムビルドアイテムタイプに依存している場合は、.csproj / .vbproj ファイルでこれらのタイプの名前を AvailableItemName に登録する必要があります。

<ItemGroup> <AvailableItemName Include="CustomBuildItemType"/> <CustomBuildItemType Include="SomeFileToProcess.abcd"/> </ItemGroup>

サポートされているプロジェクトタイプとReSharperビルドの制限

ReSharper ビルドは、.NETコアプロジェクトを含むMSBuildベースの(C#、VB.NET、F#、C++)のほとんどの.NETプロジェクトタイプと言語をサポートしています。ただし、次のような制限があります。

  • MSBuild以外のプロジェクト。ReSharperビルドは、MSBuildベースではないプロジェクトタイプでは機能しません。これには、Webサイト(フォルダーベースのプロジェクト、MVC Webアプリケーションではありません)、WinJSアプリケーション、およびDNXアプリケーションが含まれます。ソリューションにこれらの種類のプロジェクトがある場合、ソリューションビルド全体は標準のMSBuildビルドプロセスにフォールバックします。

  • カスタム・ビルド・ステップ。通常、カスタムビルドステップ(C++プロジェクトのビルド前後のステップを含む)は、バッチファイルを呼び出すのと同じです。たとえば、ファイルを出力ディレクトリにコピーするためにいくつかのコマンドラインが実行されます。ReSharperビルドに関する限り、これらはブラックボックスです。カスタムビルドステップで何が起こっているのかわからないため、入力と出力を追跡できません。さらに、プロジェクトがスキップされると、ビルドステップが実行されず、ビルドで課題が発生する可能性があります(これが、デフォルトでReSharperビルドが無効になっている主な理由です)。

    ただし、カスタムターゲットとタスクがタイムスタンプの変更を監視できる入力と出力のリストを含む増分ビルド(英語)をサポートしている限り、カスタムMSBuildターゲットとタスクはReSharperビルドで動作します。ReSharper ビルドで良好な結果を得るには、単純なカスタムビルドステップをカスタムターゲットに変換することを強くお勧めします。

    カスタムビルドステップを置き換えることができない場合は、ヒューリスティックを適用せずにプロジェクトを常に作成する必要があるプロジェクトのリストに追加することができます。つまり、MSBuildに渡され、MSBuildの標準インクリメンタルビルドプロセスが実行されます。ReSharperオプションのツール | ReSharper ビルド | ヒューリスティックページで設定できます。

最終更新日: 2020年3月26日

関連ページ:

ビルド & 実行ウィンドウ

このウィンドウは2つの目的で使用できます。ReSharper ビルドを起動し、進行状況とステータスを視覚化することができます。次のことができます。は実行コンフィギュレーションを実行します。ビルド現在のソリューションをビルドするか、別のビルドアクションを選択できるようにします。:再ビルドまたはクリーン...

ReSharper設定の管理と共有

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

ビルド結果ウィンドウ

ビルド結果ウィンドウは、ReSharperを使用してソリューションをビルドするときに、ビルドエラーと、オプションで警告を表示します。結果をダブルクリックすることで、ビルドのエラーや警告を含むドキュメントをすばやく開くことができます。ツールバー・コントロール:すべて展開/すべて縮小表示現在のタブのすべ...

ソリューション全体の分析

ソリューション全体の分析では、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語でエラーが検出されます。プロジェクトにこのようなファイル(JavaScript、CSS、HTMLなど)が含まれている場合、ソリューション全体の分析は、それ以外の場合は実行時にのみ検出される可能性...

導入

C#、VB.NET、XAML、JavaScript、TypeScript、JSON、XML、HTML、CSS、ASP.NET、ASP.NET MVC、Protobuf、NAnt、MSBuildスクリプトをサポートし、包括的な言語間機能を含むJetBrains ReSharperはVisual Stu...

実行設定

ReSharperは、ソリューションの複数の実行構成の作成、管理、実行を支援します。実行構成では、プロジェクト、静的メソッドまたは実行可能ファイルを実行またはデバッグできます。ReSharper Ultimateライセンスを持っている場合、JetBrains dotTraceで実行構成をプロファイル...