JetBrains Rider 2023.3 Help

Build process

To build the current solution, press Ctrl+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 Ctrl+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 Ctrl+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 Ctrl+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 Ctrl+Alt+S.

Monitor and analyze build output

Build output and results are displayed in the Build tool window Ctrl+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 Ctrl+Alt+S.

To view warnings in a failed build, click Warnings on the toolbar. If the build succeeds, the tree view will display warnings, if any.

JetBrains Rider: Build window

To show or hide 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 Ctrl+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: 01 March 2024