ソリューションのビルド
ReSharper を使用すると、複数の並列プロセスを使用してソリューションを段階的に構築できます。Visual Studio のネイティブのビルド管理の代わりに ReSharper ビルドを使用できます。
ReSharper は MSBuild を置き換えるものではないことに注意してください。プロジェクトは引き続き通常どおりビルドされます。違いは、更新する必要のないプロジェクトは再構築されないことです。
ReSharper ビルドを開始
デフォルトでは、ReSharper ビルドは無効になっています。有効にするには、次のいずれかの操作を行います。
ReSharper オプション Alt+R, O の ページに移動し、ビルドセクションで ReSharper ビルドを使用するを選択します。
Build & Run ウィンドウ (設定 をクリックして ReSharper ビルドを使用するを選択します。
) を開き、
ReSharper ビルドが有効になっている場合、ソリューションを構築するにはいくつかの方法があります。
Visual Studio ビルドコマンド(Ctrl+Shift+B など)のいずれかを使用します。これらのコマンドとショートカットはすべて、ReSharper ビルドによって上書きされます。
ビルド をクリックするか、ビルドと実行ウィンドウのツールバーのドロップダウンメニューにある他のビルドコマンドを選択します。
特定のプロジェクトをビルド、リビルド、クリーンするには、ビルドと実行ウィンドウでプロジェクトを右クリックし、コンテキストメニューで対応するコマンドを選択します。
ReSharper は、すべての Visual Studio バージョンで動作する独自の NuGet 復元機能も提供します。デフォルトでは、ReSharper は各ビルドの前にすべての関連する NuGet パッケージが復元されるようにしますが、ReSharper オプション Alt+R, O の ページで対応するチェックボックスをオフにすることで無効にできます。自動復元が無効になっている場合は、ビルドと実行ウィンドウのツールバーで NuGet パッケージを復元する をクリックすることで、いつでも手動で実行できます。
NuGet リストアは、このオプションページで有効になっている場合、ログを出力に書き込みます。また、ReSharper オプション Alt+R, O の ページで、ログメッセージレベルを構成し、リストアのログ情報を表示することもできます。
ビルドプロセス
ReSharper ビルドを初めて実行すると、構成に応じて複数の並列プロセスを使用してすべてのプロジェクトがビルドされます。すべてのビルド管理はアウトプロセスで行われるため、ビルドの実行中も Visual Studio は応答性を維持します。
次回ソリューションをビルドするとき、ReSharper はサポートされているビルド項目が変更されたプロジェクトのみをビルドします。変更が他のプロジェクトで使用されているパブリックタイプに影響する場合は、依存プロジェクトも再構築されます。
変更の影響を受けないプロジェクトは、すべての追加ビルドロジックを含めて完全にスキップされます。スキップされたプロジェクトに対してビルド前およびビルド後のイベントおよび / または BeforeBuild と AfterBuild MSBuild のターゲット(英語)を実行する場合は、ReSharper オプション Alt+R, O の ページで対応するチェックボックスを使用します。
ReSharper ビルドは、MSBuild のタスク、ターゲット、プロジェクトへの入力と出力の依存関係グラフを維持し、ファイルシステムの変更を効率的に監視します。ビルドを開始すると、ReSharper ビルドは、MSBuild を呼び出すことなく、タイムスタンプが最新であるかどうかを知っています。タイムスタンプが最新の場合、プロジェクトはスキップされます。
デフォルトでは、ReSharper ビルドは Visual Studio 設定で指定されたものと同じ MSBuild バージョンを使用し、6 つのプロセスを並行して実行します。必要に応じて、MSBuild バージョンを明示的に指定し、ReSharper オプション Alt+R, O の ページでプロセス数を変更できます。
ビルドプロセスと概要はビルドと実行ウィンドウに表示されます。
ソリューションのすべてのプロジェクトはグリッド内に視覚化され、それぞれが特定の色で表示されます。プロジェクトの上にマウスを移動すると、状態を説明するツールチップが表示されます。色はプロジェクトのビルド状態を表します。
濃い灰色 — プロジェクトはクリーンアップされるか、ビルドされません。
灰色 — プロジェクトは、ソリューションビルドから除外されているか、特定のプロジェクトに対してのみビルドを実行し、関連のないプロジェクトがビルドされていないという 2 つの理由のいずれかでビルドされていません。
ライトブルー — プロジェクトは前回の実行でビルドされたものであり、変更はありません。
青 — プロジェクトは前回の実行でビルドされ、変更はありません。それが参照するプロジェクトには、プライベートな変更のみがあります。
緑 — プロジェクトが変更されたか、依存プロジェクトの 1 つに公開の変更があった場合、警告なしで正常に再構築されました。
黄色 — プロジェクトが変更されたか、依存プロジェクトの 1 つに公開の変更があった場合、警告付きで正常に再構築されました。
赤 — プロジェクトが変更されたか、依存プロジェクトの 1 つに公開の変更があったため、プロジェクトのビルドが失敗しました。
現在のビルドをキャンセルする必要がある場合は、メインメニューから
を選択します。Build & Run ウィンドウのツールバーコントロール
コントロール | 名前 | 説明 |
---|---|---|
| ビルド | 現在のソリューションをビルドするか、別のビルドアクションを選択できるようにします。再ビルドまたはクリーン |
設定セレクタを実行する | アクティブな実行構成を表示し、構成間の切り替えや新しい構成の追加を可能にします。詳細については、実行構成を参照してください。 | |
| 実行 | アクティブな実行構成を実行します。 |
| ビルなしで実行 | ソリューションを構築せずにアクティブな実行構成を実行します。 |
| デバッグ | アクティブなコンフィギュレーションのデバッグを開始します。 |
| ビルドせずにデバッグする | ビルドせずにアクティブコンフィギュレーションのデバッグを開始します。 |
| NuGet パッケージを復元する | このボタンを使用すると、ReSharper 独自の NuGet 復元機能の実装を使用して、現在のソリューションの NuGet パッケージを復元できます。 NuGet パッケージの自動復元も、各ビルドの前にデフォルトで有効になっています。必要に応じて、ReSharper オプション Alt+R, O の ページでビルド前に NuGet パッケージを復元するチェックボックスをオフにして無効にすることができます。 |
| プロファイリングを開始 | このドロップダウンボタンを使用すると、選択した実行構成のプロファイリングを、JetBrains dotTrace を使用して目的のプロファイリングモードで開始できます。 |
| 設定 | ReSharper Builder と Visual Studio Builder を切り替えたり、ReSharper オプション Alt+R, O の ページを開いたりすることができます。 |
ビルド結果を分析する
ビルドが完了すると、ReSharper はビルド結果ウィンドウにビルドエラー (およびオプションで警告) を表示します。
デフォルトでは、ビルドエラーがある場合にのみ結果が表示されます。必要に応じて、ReSharper オプション Alt+R, O の ページでビルド結果を表示する ... セレクターを使用して、警告付きで結果を表示したり、結果を常に表示したり、まったく表示しないようにしたりできます。
ビルド結果ウィンドウでは、次のいずれかの方法でビルド出力をさらに調べることができます。
グループ化セレクタの複数のオプションの 1 つを使用して結果をグループ化する便利な方法を選択します。
ビルドエラーがある場合、これらのエラーのみがウィンドウに表示されます。コンパイルの警告も表示したい場合は、ツールバーの警告を表示 をクリックします。
前へ / 次へ ボタンまたは Shift+F8/F8 ショートカットを使用して、ビルドメッセージ間を移動します。
エラーまたは警告の原因となったコードをプレビューするには、プレビューの表示 をクリックするか、Ctrl+P を押します。ウィンドウの左側または下部にあるプレビューペインでは、エラーと警告が赤または青の波線でハイライトされます。
エラーまたは警告をダブルクリックして、エディターで対応するコード行に移動します。
ReSharper ビルドの構成
の ReSharper オプションページで ReSharper ビルドを設定することができます。
ReSharper オプション Alt+R, O の ページで ReSharper ビルドチェックボックスをオフにすると、ReSharper ソリューションビルダーを無効にすることができます。
ビルドからアイテムを除外する
ソリューションをビルドするときに一部のプロジェクトをビルドする必要がない場合は、それらのプロジェクトを除外してビルド時間を短縮できます。これを行うには、ReSharper オプションのAlt+R, O ページに移動し、決して建ててはいけないプロジェクトセクションで除外するプロジェクトまたはソリューションフォルダーをマークします。このセクションの検索フィールドを使用して、ソリューションツリーをフィルター処理し、一致する項目のみを表示できます。
ページまたは ReSharper オプションのソリューションエクスプローラーでこれらの項目に対してビルドコマンドを呼び出しても、除外項目を作成することはできません。
プロジェクトを除外すると、ソースファイルが古くなっていたり、参照されているプロジェクトに公開 API の変更があっても、再構築されません。これは非常に劇的で、未知のコンパイルエラーにつながる可能性がありますが、コンパイルが遅く、現在の開発タスクでは使用されていないプロジェクトを一時的に除外すると便利です。これは、Visual Studio でプロジェクトをアンロードしてコンパイルしないようにするのに似ていますが、ナビゲーションとリファクタリングを可能にするためにソースファイルは ReSharper で引き続き使用できます。ソース管理にコミットする前に再有効化と再構築を行うか、入力時にソリューション全体の分析を使用してコンパイルエラーを表示することをお勧めします。
特定のプロジェクトを強制的にビルドする
ReSharper ビルドは、プロジェクトが以前に正常にビルドされ、その後何も変更されていない場合、プロジェクトをビルドしません。一部のプロジェクトを、その変更とは関係なくビルドする必要がある場合は、強制的にビルドできます。これを行うには、常に構築されるべきプロジェクトセクションで強制的にビルドするプロジェクトまたはソリューションフォルダーをマークします。このセクションの検索フィールドを使用してソリューションツリーをフィルタリングし、一致する項目のみを表示できます。
プロジェクトを「常にビルド」としてマークすると、ReSharper ビルドは、このプロジェクトにヒューリスティックを適用せず、常に MSBuild に渡すように指示します。これは、プロジェクトが常に再構築および再コンパイルされることを意味するのではなく、MSBuild が常に呼び出されることを意味します。MSBuild は引き続きタイムスタンプをチェックし、増分ビルドを実行する可能性があります。これは、ReSharper ビルドが追跡できないカスタムビルドステップがあるプロジェクトに役立ちます (ただし、カスタムビルドステップを増分ビルドをサポートする適切な MSBuild ターゲットとして書き直す方がよいでしょう)。
ビジュアライゼーション設定
デフォルトでは、ReSharper ビルドを開始すると、ビルドと実行ウィンドウが表示され、ビルドの進行状況も Visual Studio ステータスバーに表示されます。必要に応じて、ReSharper オプション Alt+R, O の ページでこの動作を構成できます。
サポートされているビルドアイテム
再ビルドするかどうかを決定するために以前にビルドされたプロジェクトの変更を評価するとき、ReSharper は最も一般的な MSBuild アイテムタイプのビルド項目をチェックします。
タイプ None
および上記にリストされていない他のタイプのビルドアイテムの変更は、デフォルトで無視されます。プロジェクトビルドが他のカスタムビルドアイテムタイプに依存している場合、これらのタイプの名前は .csproj/.vbproj ファイルの AvailableItemName
に登録する必要があります。例:
サポートされているプロジェクトタイプと ReSharper ビルドの制限
ReSharper ビルドは、MSBuild ベースのほとんどの .NET プロジェクトタイプと言語 (C#、VB.NET、F#、C++) をサポートします。ただし、次の制限があります。
MSBuild 以外のプロジェクト。ReSharper ビルドは、MSBuild ベースではないプロジェクトタイプでは機能しません。これには、Web サイト (フォルダーベースのプロジェクト、MVC Web アプリケーションではない)、WinJS アプリケーション、および DNX アプリケーションが含まれます。ソリューションにこれらのタイプのプロジェクトがある場合、ソリューションビルド全体が標準の MSBuild ビルドプロセスにフォールバックします。
カスタムビルドステップ。通常、カスタムビルドステップ(C++ プロジェクトのビルド前後のステップを含む)は、バッチファイルを呼び出すのと同じです。たとえば、ファイルを出力ディレクトリにコピーするためにいくつかのコマンドラインが実行されます。ReSharper ビルドに関する限り、これらはブラックボックスです。カスタムビルドステップで何が起こっているのかわからないため、入力と出力を追跡できません。さらに、プロジェクトがスキップされると、ビルドステップが実行されず、ビルドで問題が発生する可能性があります(これが、デフォルトで ReSharper ビルドが無効になっている主な理由です)。
ただし、カスタム MSBuild ターゲットとタスクは、タイムスタンプの変更を監視できる入力と出力のリストを使用して増分ビルドをサポートしている限り、ReSharper ビルドで動作します。ReSharper ビルドで良好な結果を得るには、単純なカスタムビルドステップをカスタムターゲットに変換することを強くお勧めします。
カスタムビルドステップを置き換えることができない場合は、ヒューリスティックを適用せずに、プロジェクトを「常にビルド」する必要があるプロジェクトのリストに追加できます。つまり、プロジェクトは常に MSBuild に渡され、MSBuild の標準の増分ビルドプロセスが実行されます。これは、ReSharper オプション Alt+R, O の ページで構成できます。
関連ページ:
ReSharper 設定の管理と共有
ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...
実行構成
ReSharper は、ソリューションの複数の実行構成の作成、管理、実行を支援します。実行構成では、プロジェクト、静的メソッドまたは実行可能ファイルを実行またはデバッグできます。実行構成ポップアップ:You can execute run configurations as well as manage them in any way using the 実行構成 popup. To open the popup press or choose from the main menu. ポップアップに...
Visual Studio からプロファイリングセッションを開始
Visual Studio に統合された dotTrace を使用すると、現在開いているソリューション、具体的には特定の実行構成をプロファイリングできます。実行構成を使用すると、スタートアッププロジェクト、任意の実行可能ファイル、さらには静的メソッドに対して、さまざまな実行パラメーターを使用して多数の定義済み構成を作成できます。例: CPU アーキテクチャと CLR バージョンによって異なる多数の構成を作成できます。これらの構成を使用すると、毎回特定の実行パラメーターを設定する必要がなく、プロジ...
ソリューション全体の分析
ソリューション全体の分析により、プロジェクトのコンパイルを妨げないものを含め、サポートされているすべての言語 C++ を除くでエラーが検出されます。プロジェクトにそのようなファイル (JavaScript、CSS、HTML など) が含まれている場合、ソリューション全体の分析は、実行時にしか検出できないエラーを見つけるのに役立ちます。ReSharper のソリューション全体の分析では、2 つの関連しているが異なる機能が実現します。ソリューション全体のエラー / 警告モニター:ReSharper 自...
ビルド、実行、デバッグ
ReSharper には、Visual Studio でのプロジェクトの構築、実行、デバッグのエクスペリエンスを向上させる多数の機能が含まれています。本セクション: ソリューションのビルド、実行構成、デバッガー用のビジュアルヘルパー、予測デバッガー、デバッグ情報を持たないデバッグモジュール (PDB)、プロジェクト参照を分析および最適化するソリューションのビルド