JetBrains Rider 2023.2 Help

Build process

To build the current solution, press Control+F9. Alternatively, a build, rebuild, or clean can be started from the Build menu. You can also build specific projects in custom ways, for example, with diagnostics or without dependencies — select the desired projects in the Solution Explorer and then use actions under the Advanced Build Actions group in the context menu.

When running a build, the MSBuild or XBuild output is shown in the Build tool window Control+W, A.

By default, Rider optimizes build process with ReSharper Build, which tracks changes in your solution and only rebuilds modified projects and necessary dependencies.

If your solution includes non-MSBuild projects or projects with custom build steps, you need to disable ReSharper Build on the Build, Execution, Deployment | Toolset And Build page of JetBrains Rider settings Control+Alt+S — in this case, Rider will delegate the entire solution build to MSBuild.exe.

How ReSharper Build works

When you run ReSharper Build for the first time, it builds all projects using multiple parallel processes according to your build configurations.

The next time you build the solution, JetBrains Rider only builds projects where supported build items were changed. If the change affects public types used in other projects, the dependent projects are rebuilt as well.

The projects that are not affected by changes are skipped completely, including all additional build logic. If you want to execute pre-build and post-build events and/or BeforeBuild and AfterBuild MSBuild targets for skipped projects, use the corresponding checkboxes on the Build, Execution, Deployment | Toolset And Build page of JetBrains Rider settings Control+Alt+S.

ReSharper Build maintains a dependency graph of inputs and outputs to MSBuild tasks, targets and projects, and efficiently monitors the file system for changes. When you start a build, ReSharper Build already knows if the timestamps are up to date, without having to invoke MSBuild: if a timestamp is up to date, the project is skipped.

By default, ReSharper Build uses the latest installed MSBuild version and runs in 6 processes in parallel. If necessary, you can specify MSBuild version explicitly and change the number of processes on the Build, Execution, Deployment | Toolset And Build page of JetBrains Rider settings Control+Alt+S.

Monitor and analyze build output

Build output and results are displayed in the Build tool window Control+W, A.

The window appears automatically as soon as you start the build, and it shows live build output as a log view. You can disable or enable the log output and choose its verbosity level using the Write log to output option on the Build, Execution, Deployment | Toolset And Build page of JetBrains Rider settings Control+Alt+S.

By default, if build completes with errors or warnings, the Build window automatically switches to the tree view where all errors and warnings are displayed as clickable items and grouped by projects. If there are build errors, the tree view will only display errors. To view warnings in a failed build, click Warnings on the toolbar. If the build is succeeds, the tree view will display warnings, if any.

JetBrains Rider: Build window

If you do not want the Window to automatically switch to the tree view, clear the Tool Window: switch to tree view after the build if build events were reported on the Build, Execution, Deployment | Toolset and Build | Presentation page of the IDE settings Control+Alt+S. On that settings page, you can also opt not to display the Build wild automatically after the build is started or completed.

To view the console output, click Toggle Console View on the toolbar.

When studying the tree view, you can quickly locate build errors and warnings in the editor by double-clicking or pressing F4 on the corresponding items. In the tree view mode, you can also press Alt+F1 on an error or warning to locate the containing file in another tool window.

If logging build results to file is enabled on the Build, Execution, Deployment | Toolset And Build page of JetBrains Rider settings Control+Alt+S, you can open the build log file by clicking More on the toolbar and choosing Open Log File.

Supported project types and limitations of ReSharper Build

ReSharper Build supports most .NET project types and languages that are MSBuild-based (C#, VB.NET, F#, C++). However, there are following limitations:

  • Non-MSBuild projects. ReSharper Build cannot work with project types that are not MSBuild-based. This includes Web Sites (folder based projects, not MVC web applications), WinJS applications and DNX applications. If there are projects of these types in your solution, the whole solution build will fall back to the standard MSBuild build process.

  • Custom build steps. 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.

    However, custom MSBuild targets and tasks WILL work with ReSharper Build, as long as the custom target and task supports incremental building, with a list of inputs and outputs that can be monitored for timestamp changes. Converting a naive custom build step to custom targets is highly recommended in order to get good results with ReSharper Build.

Last modified: 07 December 2021