Is it possible to avoid direct reference?

Keywords: c#

Question: 

I have a C# project(project 1) that references another project(project 2). Project2 is using a certain NuGet package, np1, which is not installed on project 1. From project 1, I can call any method from project 2 but if I call any function made available by np1, i get an error. The error is: Could not load file or assembly... from project 2. I would like to add that np1 is properly installed or referenced on project 2 and works on an "as is" basis. However, if I also add the np1 to project 1, the code works just fine. Can someone please explain this behaviour?

Answers: