---
title: "Private And Shared Assembly in .Net"  
description: "In this blog, I’m trying to explain the private and shared assembly and differences between them.Private AssemblyThis type of assembly is used by a si"  
author: "Sumit Kesarwani"  
published: 2013-05-10  
updated: 2014-09-18  
canonical: https://www.mindstick.com/blog/493/private-and-shared-assembly-in-dot-net  
category: ".net"  
tags: [".net"]  
reading_time: 2 minutes  

---

# Private And Shared Assembly in .Net

In this blog, I’m trying to explain the private and shared assembly and [differences](https://www.mindstick.com/articles/12918/cat-5e-vs-cat-6a-understanding-the-major-differences) between them.

Private Assembly

This type of assembly is used by a single [application](https://www.mindstick.com/articles/12824/calculator-application-in-android). It is stored in the application's directory or the applications sub-directory. There is no version [constraint](https://www.mindstick.com/articles/434/constraint-in-sql-server) in a private assembly.

Shared Assembly or Public Assembly

A shared assembly has version constraint. It is stored in the [Global Assembly](https://www.mindstick.com/forum/158570/what-is-the-global-assembly-cache-gac-and-how-is-it-used-in-dot-net) Cache (GAC). GAC is a [repository](https://www.mindstick.com/articles/12232/repository-pattern-in-mvc) of shared assemblies maintained by the .NET runtime. It is located at C:\Windows\Assembly OR C:\Winnt\Assembly. The shared assemblies may be used by many applications. To make an assembly a shared assembly, it has to be [strongly named](https://www.mindstick.com/interview/23050/what-is-strongly-named-assembly). In order to share an assembly with many applications, it must have a [strong name](https://www.mindstick.com/articles/440/what-is-strong-name-in-assembly).

##### Differences between Private and Shared Assembly

- Private assembly can be used by only one application.
- Shared assembly can be used by [multiple applications](https://answers.mindstick.com/qa/109321/what-to-do-if-my-computer-freezes-when-opening-multiple-applications)
- Private assembly will be stored in the specific application's directory or sub-directory.
- Shared assembly is stored in GAC (Global Assembly Cache).
- There is no other name for private assembly.
- Shared assembly is also [termed as](https://answers.mindstick.com/qa/97007/why-the-standard-of-an-osi-model-is-termed-as-802-xx) shared assembly
- Strong name is not required for private assembly.
- Strong name has to be created for shared assembly.
- Private assembly doesn't have any version constraint.
- Shared assembly should strictly enforce version constraint.

---

Original Source: https://www.mindstick.com/blog/493/private-and-shared-assembly-in-dot-net

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
