Private Assembly:
1)Private assembly can be used by only one application.
2)Private assembly will be stored in the specific application's directory or sub-directory.
3)There is no other name for private assembly.
4)Strong name is not required for private assembly.
5)Private assembly doesn't have any version constraint.
Public Assembly:
1)Public assembly can be used by multiple applications.
2)Public assembly is stored in GAC (Global Assembly Cache).
3)Public assembly is also termed as shared assembly.
4)Strong name has to be created for public assembly.
5)Public assembly should strictly enforce version constraint.