UiPath Studio

The UiPath Studio Guide

About Automation Projects

UiPath Studio allows you to create two types of standalone automation projects: process or library. Processes can incorporate all types of workflows, sequence, flowchart, state machine and global exception handler, while the latter isn't available for libraries. Moreover, libraries can be added as dependencies to automation processes.

When you start a new process in Studio, a folder is created with your custom name to the selected location. Projects are saved in the %USERPROFILE%\Documents\UiPath directory by default, unless this location is manually changed.

This folder includes:

  • a Main.xaml file is automatically created, which should hold your main workflow.
  • all other automation .xaml files included in the project. Please note that these files have to be linked to the Main.xaml through the Invoke Workflow File activity, because only the Main.xaml file is executed when you run a job.
  • a .screenshots folder, if you are dealing with UI automation.
  • a project.json file that contains information about your automation project.



Projects created with newer versions of Studio might not work with older Studio versions. Read more about Backward and Forward Compatibilty.

Setting the Project Language

Projects created in the Studio and StudioX profiles use the VB.NET language for expressions.

In the Studio Pro profile, when you create a new project, you can choose either VB or C#. VB is the language selected by default, but you can set C# as the default language for new projects by going to Home (Studio Backstage View) > Settings > Design. Please note that C# projects can only be opened from the Studio Pro profile.

The use of both VB and C# expressions in the same project is not supported. Neither is the use of VB expressions in C# workflows and vice versa. When you copy and paste activities from other projects, invoke or import workflows, make sure they use the same language as your project.

You can install C# libraries as dependencies in VB projects and vice versa. However, default values defined for arguments in the library project using language-specific expressions cannot be accessed from the project where the library is installed.

C# Limitations

  • The current C# implementation is based on the C# compiler that uses C# version 5, therefore access to newer features like coalescing assignment, null-conditional operator, null-coalescing operator, string interpolation and others is limited.
  • Projects containing expressions with increments are invalid.
  • Expressions containing the nameof() operator are marked as invalid and are not allowed with the current implementation of C#.
  • Expressions containing calls to methods with optional arguments must include values for the optional arguments.
  • Design time and runtime performance of C# projects is lower when compared to VB.NET. When runtime performance is essential, we recommend using VB.NET instead of C#.

Setting the Project Version

Semantic Versioning

The semantic versioning scheme has the format Major.Minor.Patch[-Suffix], where:

  • Major is the major version.
  • Minor is the minor version.
  • Patch is the patch version.
  • -Suffix (optional) is a hyphen followed by a series of dot separated identifiers immediately following the patch version. This denotes a prerelease version.

Identifiers must comprise only of ASCII alphanumeric characters and hyphen, and they must not be empty. Numeric identifiers must not include leading zeroes. In addition, build metadata may be denoted by appending a plus sign and a series of dot separated identifiers immediately following the patch or pre-release version, for example 1.0.0-alpha+1.

When creating a new process or library, the default version scheme is semantic. It can be changed from the Publish window by simply adding an extra digit to the version number. The project’s semantic version can be modified from the project.json file too. The patch number 0 is automatically added to projects with version number major.minor.

Legacy Versioning

The legacy version number generated for the project has the format M.m.bbbb.rrrrr, where:

  • M is the major version.
  • m is the minor version.
  • bbbb is the build version.
  • rrrrr is the revision version.

The major and minor versions can be edited in the project.json file also, while the build and revision versions are generated according to an algorithm - the build value is the number of days that elapsed since 01.01.2000. The revision value is the number of seconds which elapsed since the current day, until the moment of the release. The result is divided by 2, so that the maximum revision number does not exceed 65535.

The suggested version number in the Publish window is generated based on the project’s previous versioning scheme, while the current date and timestamp are taken into account for projects using the 4-digit versioning scheme.

Adjusting Project Settings

A set of individual settings can be established for each automation project that you’re working on. Such settings are available in the Project Settings window, which can be opened by clicking the settings_iconsettings_icon in the Project panel.

Field Description for the Settings Window




Change the name of the project. Such names may contain whitespace characters. When naming projects, keep in mind that whitespace characters are removed at publish time. This field accepts up to 128 characters.


Change the project description. This field accepts up to 500 characters.

Disable Pause

Enable or prevent users from pausing processes in the Robot tray. Set to Yes if pausing the process during execution would result in crashing it. For example, if an activity in your workflow uses the Timeout property, pausing the execution might cause the timeout to expire, thus breaking the execution.

Starts in Background

Set to Yes to turn the project in a Background Process and allow it to run in the background concurrently with other processes, as long as it does not use UI interaction.

Supports Persistence

Set to Yes to turn the project in an Orchestration Process.

PiP Ready

Set to Yes to indicate that the project was tested using Picture in Picture. If set to No, the option to use this feature is not available for the process.

Starts in PiP

Set to Yes to indicate that the process should be run by default using the Picture in Picture feature.

Modern Design Experience

Set to Yes to enable a modern experience of working with UI Automation, including new and improved activities, recorders, and wizards, as well as the Object Repository.

Click OK and the changes are made visible in the Project panel and project.json file.

Check out the Configuring Activity Project Settings page to read about how to adjust activity properties at project level.



Please take into consideration that whenever you wish to copy a large number of activities from one sequence to another, it is recommended to scroll down to the bottom of the Designer panel beforehand. This is due to a Windows Workflow Foundation limitation.

Updated 11 days ago

About Automation Projects

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.