Manpage logo

dotnet-reference-add - Adds project-to-project (P2P) references.

dotnet reference add  NAME  SYNOPSIS  DESCRIPTION  Add a reference to an assembly that isn’t in a project  ARGUMENTS  OPTIONS  EXAMPLES 

dotnet reference add

This article applies to: ✔️ .NET 6 SDK and later versions

NAME

dotnet-reference-add - Adds project-to-project (P2P) references.

If you’re using .NET 9 SDK or earlier, use the “verb first” form (dotnet-add-reference) instead. The “noun first” form was introduced in .NET 10. For more information, see More consistent command order.

SYNOPSIS

dotnet reference add reference [-f|--framework <FRAMEWORK>]
     [--interactive] <PROJECT_REFERENCES> [--project <PROJECT>]

dotnet reference add -h|--help

DESCRIPTION

The dotnet reference add command provides a convenient option to add project references to a project. After running the command, the <ProjectReference> elements are added to the project file.

<ItemGroup>
  <ProjectReference Include="app.csproj" />
  <ProjectReference Include="..\lib2\lib2.csproj" />
  <ProjectReference Include="..\lib1\lib1.csproj" />
  <ProjectReference Include="..\lib3\lib3.fsproj" />
</ItemGroup>

Add a reference to an assembly that isn’t in a project

There’s no CLI command to add a reference to an assembly that isn’t in a project or a package. But you can do that by editing your .csproj file and adding markup similar to the following example:

<ItemGroup>
  <Reference Include="MyAssembly">
    <HintPath>.\MyDLLFolder\MyAssembly.dll</HintPath>
  </Reference>
</ItemGroup>

ARGUMENTS

PROJECT

Specifies the project file. If not specified, the command searches the current directory for one.

PROJECT_REFERENCES

Project-to-project (P2P) references to add. Specify one or more projects. Glob patterns (https://en.wikipedia.org/wiki/Glob_(programming)) are supported on Unix/Linux-based systems.

OPTIONS

-f|--framework <FRAMEWORK>

Adds project references only when targeting a specific framework using the TFM format.

-?|-h|--help

Prints out a description of how to use the command.

--interactive

Allows the command to stop and wait for user input or action. For example, to complete authentication. Available since .NET Core 3.0 SDK.

EXAMPLES

Add a project reference:

dotnet reference add lib/lib.csproj --project app/app.csproj

Add a compatible .NET language (for example, F#) project reference, which works in both directions:

dotnet add app/app.csproj reference lib/lib.fsproj

Add multiple project references to the project in the current directory:

dotnet reference add lib1/lib1.csproj lib2/lib2.csproj

Add multiple project references using a globbing pattern on Linux/Unix:

dotnet reference add **/*.csproj --project app/app.csproj

Updated 2026-06-01 - jenkler.se | uex.se