Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reference related projects in the same solution when Nuget packages are the required output

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?

like image 341
Guillaume Schuermans Avatar asked Jun 16 '13 17:06

Guillaume Schuermans


People also ask

How do I install NuGet packages from one project to another?

Simply copy existing packages. config file to your new project. Include this file into the project. Then follow to Package Manager Console and execute Update-Package -reinstall command.


1 Answers

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.

like image 107
Murilo Giacometti Avatar answered Sep 21 '22 04:09

Murilo Giacometti