Question

I was wondering what's the best approach to reference a project in the same solution. Do you create the reference using the 'Add reference' feature or do you 'manage the nuget package' and download a certain published version. Each project in its turn will result in a Nuget package which can be referenced by other solutions.

So for other solutions it's clear. They create the reference using Nuget, but how about intrasolution project references?

Was it helpful?

Solution

The best approach is to create a NuGet dependency on the referenced project.

Suppose you have two projects in your solution:

Solution
    | ProjectA
    | ProjectB

ProjectA has a reference to ProjectB and both of them are NuGet packages (both have nuspec files). If you want to create a package ProjectA that depends on ProjectB, execute in the root of ProjectA:

NuGet Pack -IncludeReferencedProjects

In the presence of IncludeReferencedProjects, NuGet will traverse the referenced projects inside the solution, looking for nuspec files (that indicates that a project is a package). If a nuspec if found, it is added as a dependency.

In this example, it will find a nuspec file in ProjectB, and add it as a dependency. When you install ProjectA, ProjectB will also be installed and it will be added as reference.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top