Unlike most other project types a shared project does not have any output (in DLL form), instead the code is compiled into each project that references it. If you have used file-linking in the past to share code between projects, Shared Projects works in a similar way but with much improved IDE support. There is also IDE support to help manage the compiler directives and visualize how the code will look in each application. They support compiler directives so that you can conditionally include platform-specific code to be compiled into a subset of the projects that are referencing the Shared Project. Shared Projects (also sometimes called Shared Asset Projects) let you write code that is shared between multiple target projects including Xamarin applications.
The code is compiled as part of each referencing project and can include compiler directives to help incorporate platform-specific functionality into the shared code base. Shared Projects let you write common code that is referenced by a number of different application projects.