ReSharper 2020.1ヘルプ

ソリューションのビルド

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 png をクリックするか、ReSharperビルド&実行ウィンドウのツールバーのドロップダウンメニューにある他のビルドコマンドを選択します。

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

ReSharper also provides its own implementation of NuGet restorer, which works with all Visual Studio versions. By default, ReSharper makes sure that all related NuGet packages are restored before each build, but you can disable it by clearing the corresponding checkbox on the ツール | ビルド | 一般 page of ReSharper options. If the automatic restore is disabled, you can always run it manually by clicking NuGetパッケージを復元する ThemedIcon NuGet Screen Gray png on the toolbar of ビルド & 実行ウィンドウ .
NuGet restorer writes log to output if it is enabled on this options page. You can also configure log message level and view log information for restores on the ツール | NuGetリストラ page of ReSharper options.

ビルドプロセス

初めて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つがパブリックに変更された後、警告付きで正常に再構築されました。

  • Red— the project was changed or one of the dependent projects had public changes, then the project build failed.

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

ビルド結果を分析する

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

Grouping and sorting build results

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

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

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

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

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

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

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

ReSharperビルドの構成

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

You can disable ReSharper solution builder by clearing the ReSharper ビルド checkbox on the 環境 | 製品と機能 page of ReSharper options ( Alt+R O ) .

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

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

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

Excluding a project means it won’t get rebuilt, even if source files are out of date or a referenced project has public API changes. This is quite drastic, and can lead to uncaught compilation errors, but can be useful to temporarily exclude a project that is slow to compile, and not used in your current development task. It’s similar to unloading a project in Visual Studio so that it does not compile, but the source files are still available to ReSharper to allow for navigation and refactoring. We recommend re-enabling and rebuilding before committing to source control, or using ソリューション全体の分析 to show compile errors as you type.

特定のプロジェクトを強制的にビルドする

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

Marking a project as 'always build' tells ReSharper Build to never apply heuristics to this project, but to always pass it to MSBuild. This does not mean that the project will always be rebuilt and recompiled, but it means MSBuild is always called - MSBuild will still check timestamps and might perform an incremental build. This is useful for projects that have custom build steps that ReSharper Build can’t track (although it would be better to rewrite the custom build steps as proper MSBuild targets that support incremental build.).

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

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

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

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

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

Changes in build items of the type None and other types not listed above are ignored by default. If your project build relies on other custom build item types, names of these types should be registered with AvailableItemName in the .csproj / .vbproj file, e.g:

<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ビルドプロセスにフォールバックします。

  • カスタム・ビルド・ステップ。Typically, custom build steps (including pre- and post-build steps in C++ projects) are the equivalent of calling a batch file, with several command lines being executed to, for example, copy files to the output directory. These are a black box as far as ReSharper Build is concerned — it does not know what is happening in the custom build step, so can’t track the input and output. Furthermore, if the project is skipped, the build step does not run, which could cause issues with the build (this is the main reason ReSharper Build is disabled by default).

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

    If a custom build step cannot be replaced, the project can be added to the list of projects that should be 'always built', without having heuristics applied, meaning they are always passed to MSBuild, and MSBuild’s standard incremental build process will run. This can be configured on the ツール | ReSharper ビルド | ヒューリスティック page of ReSharper options.

最終更新日: 2020年8月05日

関連ページ:

ビルド & 実行ウィンドウ

このウィンドウは2つの目的で使用できます。ReSharper ビルドを起動し、進行状況とステータスを視覚化することができます。It allows you to executerun configurations.、ビルド現在のソリューションをビルドするか、別のビルドアクションを選択できるようにします...

ReSharper設定の管理と共有

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

ビルド結果ウィンドウ

ReSharper | Windows | ビルド結果Theビルド結果window displays build errors and, optionally, warnings when youbuild solution with ReSharper.結果をダブルクリックすることで、ビルドのエラ...

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

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

NuGetパッケージの検索、探索、インストール

ReSharperを使用すると、NuGetパッケージギャラリーで型または名前空間を検索し、一致するパッケージをチェックし、その内容を分析し、目的のパッケージをインストールすることができます。NuGetパッケージを探す:NuGetパッケージの検索を開始する最も簡単な方法は、未解決の名前空間で使用できる...

実行構成

ReSharper | ツール | 実行構成...ReSharperは、ソリューションの複数の実行構成の作成、管理、実行を支援します。実行構成では、プロジェクト、静的メソッドまたは実行可能ファイルを実行またはデバッグできます。If you havedotUltimatelicense, you ca...