1

I have a proof-of-concept solution that has a .NET Standard project in it. I use Paket to manage my nuget dependencies. I am able to use paket add and dotnet restore, per these instructions, to add a nuget dependency to that project. When I reopen my solution, I see that a paket.references file has been added to that project, and that a "NuGet" section has been added under the project's "Dependencies" section in "Solution Explorer".

I'm curious, how does VS2017 know what dependencies to list that "NuGet" section?

From the instructions I linked to above:

In contrast to traditional .NET projects Paket will not add assembly references to your project files. Instead it will only generate a single line:

<Import Project="..\..\.paket\Paket.Restore.targets" />

This hook tells the .NET SDK to restore packages via Paket's restore mechanism. A nice benefit is that your project files are now much cleaner and don't contain many assembly references.

I'm sure I'm missing something, but I don't see anything in Paket.Restore.targets that would tell Visual Studio where to look to find the dependency chain of the nuget package I added to the project. There are no direct references to any dependencies mentioned in the project file.

For context, I have a repo where I'm trying to add a .NET Standard project to a solution that is full of .NET Framework projects. I'm running into an issue where paket add seems to correctly create a paket.references file for the new project, but dotnet restore doesn't seem to be causing the project references to update, resulting in my project not having a reference to the nuget dependency I'm trying to have it reference. I'm having trouble creating a reproducible example (my proof-of-concept seems to be working fine), so I'm trying to better understand how this infrastructure works to help with debugging.

BobbyA
  • 2,090
  • 23
  • 41
  • This is a good question. I think paket is broken in some ways. When i add a paket.references, and do a install, update etc (i dont know what to do to make the references actually work) i get nothing. It is so undocumented. I like the features, but I cant see how i should use this when i cant even add references to my project :) – mslot Feb 03 '20 at 14:00

0 Answers0