The Assembly in dotnet, is a unit of deployment like EXE or a DLL. This is completely self-describing and is is a reusable, versionable, self-describing deployment unit for types and resources this is the primary building block of a .NET application. An Assemblie provide the infrastructure to allow the runtime to fully understand the contents of an application and to enforce the versioning and dependency rules defined by the application.
Into the DotNet, these are three types of Assemblies are available:
First is Private Assemblies : The Private Assemblies are designed to be used by one application and must reside in that application's directory or subdirectory.
Second is Shared Assemblies: The Microsoft offers the shared assembly for those components that must be distributed. This centered around two principles. First of all, its called side-by-side execution, allows the CLR to house multiple versions of the same component on a single machine. Then after, termed binding, ensures that clients obtain the version of the component they expect.
And Third is Satellite Assembly: The satellite Assembly is defined as an assembly with resources only, no executable code.