JetBrains Rider 2020.2ヘルプ

ビルドプロセス

現在のソリューションを構築するには、Ctrl+F9を押します。または、ビルドメニューからビルド、再ビルド、またはクリーンアップを開始できます。診断や依存関係なしなど、独自の方法で特定のプロジェクトを構築することもできます。ソリューションエクスプローラーで目的のプロジェクトを選択して、コンテキストメニューの高度なビルド・アクショングループでアクションを使用します。

ビルドを実行すると、MSBuildまたはXBuild出力がビルドツールウィンドウ Alt+0に表示されます。完了すると、ウィンドウにエラーと警告が表示されます。

デフォルトでは、RiderはReSharper ビルドを使用してビルドプロセスを最適化します。ReSharper ビルドは、ソリューションの変更を追跡し、変更されたプロジェクトと必要な依存関係のみを再構築します。
ソリューションにMSBuild以外のプロジェクトまたはカスタムビルド手順のあるプロジェクトが含まれている場合は、JetBrains Rider設定 Ctrl+Alt+Sビルド、実行、デプロイ | ツールセットおよびビルドページでReSharperビルドを無効にする必要があります。この場合、Riderはソリューションビルド全体をMSBuild.exeに委譲します。

ReSharperビルドのしくみ

初めてReSharperビルドを実行すると、ビルド構成に従って複数の並列プロセスを使用してすべてのプロジェクトがビルドされます

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

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

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

デフォルトでは、ReSharper ビルドはインストールされている最新のMSBuildバージョンを使用し、6つのプロセスで並行して実行されます。必要に応じて、MSBuildバージョンを明示的に指定し、JetBrains Rider設定 Ctrl+Alt+Sビルド、実行、デプロイ | ツールセットおよびビルドページでプロセス数を変更できます。

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

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

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

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

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

最終更新日: