Reputation: 11304
Per definition, A private assembly is normally used by a single application, and is stored in the application's directory, or a sub-directory beneath. and A shared assembly is normally stored in the global assembly cache, which is a repository of assemblies maintained by the .NET runtime. Shared assemblies are usually libraries of code, which many applications will find useful, e.g. Crystal report classes that will be used by all application for Reports.
As per above definition, the GAC registration is not required for a shared assembly, but generally we do GACA, also there is a situation that we can keep a assembly in a local network and multiple application use the same assembly, can we say that assembly as a shared assembly?
how shared assembly is different from private assembly?
Upvotes: 0
Views: 6160
Reputation: 1935
I think the following comparison is very presice.
Private Assembly:
Public (Shared) Assembly:
Additional note: in Visual Studio the private assembly will be automatically copied. A new copy will be created in bin folder each time we reference private assembly in other project using "add reference".
Upvotes: 1
Reputation: 500
Depends on what means "shared" for you. If for shared you mean an assembly to put in the GAC, the main difference is that shared assemblies have a strong name, which gives them a unique identity. Here you can find more details http://windowsdevcenter.com/pub/a/dotnet/2003/03/17/bindingpolicy.html
Upvotes: 0