The difference is that in one case you have a project reference. It means that Visual Studio includes it as a project, as a code. You can work with it in your solution, you can modify its code. If you change WindowsApplication2
, then it will be rebuilt and generated DLL-files will be copied to all dependent projects' output folders within solution.
In case 2, you simply have a reference to a generated DLL file. It is a generated assembly, which means no code, no possibility to edit it, no possibility to debug it if there are no .pdb files etc. It also means that you will have to build and update your DLL-file every time you make changes to it.
I may be wrong, but it won't compile if you have both of these references in your project.