Unnecessary Project References Are Ignored

When we wanted to use the Dog type, which was defined in a DogLibrary assembly, we added a reference toDogLibrary from the project that wanted to use the type.
We then saw that the manifest of DogApplication indicated that DogLibrary was a dependent assembly.
But notice all of the other references that show up in Visual Studio, none of which are seen in the manifest as dependencies.
When you build your project, the build system only created dependencies for referenced projects that your application actually uses.  If we change the code to comment out use of the Dog type, but instead use a Uri type, we’ll get the following manifest:
The manifest now includes a dependency on the System assembly, because that’s where the Uri type is defined.