JetBrains Rider 2019.1 Help

Custom Tools

File | Settings | Tools | Custom Tools for Windows and Linux
JetBrains Rider | Preferences | Tools | Custom Tools for macOS
Ctrl+Alt+S the Settings/Preferences icon


On this settings page, you can configure tools (MsBuild with custom arguments or an external executable) that automatically process specific files when they changed. For example, JetBrains Rider generates code from .resx files using the ResXFileCodeGenerator tool (this association is built-in).

To add a new tool, click icons toolbarDecorator add and specify details of the custom tool.

Suppose, you need to generate .aspx.designer.cs files when editing .aspx files. You can do this using Redesigner, an open source WebForms generator. You will need this tool as an executable, so you either need to build it or download the Redesigner.exe build with the .NET Framework 4.6.2 from JetBrains website.

When you have an executable, click icons toolbarDecorator add and provide all necessary details:

  • Name: — arbitrary name to identify the tool.

  • Extensions: — comma-separated list of file extensions (without dots) that should be processed by the tool.

  • Path: — to make sure that the path is specified correctly, click ... and use the file chooser dialog.

  • Args: — command-line arguments for the tool. To make the arguments work for different solutions and projects, use the macros that are explained in the dialog. Note that command line arguments are often sensitive to whitespaces in file paths, so don't forget to surround file paths with quotes. Command-line arguments for Redesigner.exe can look like this: -r "$PROJECT_FOLDER$" -w "$PROJECT_FOLDER$\bin\$PROJECT_NAME$.dll" "$FILE$"

JetBrains Rider: Adding custom a tool that automatically processes specific files

Custom tool will be triggered every time you edit a file that have a specified extension. You can also trigger it manually by right-clicking a file in the Solution Explorer and choosing Execute [tool name] from the context menu.

If a custom tool provides some output, you can find it in backend.log (Help | Show Lot in Explorer/Finder).

Last modified: 23 May 2019

See Also