Assembly Deployment Models

.NET supports two assembly deployment models : private and shared. With a private assembly, each client application maintains its own private local copy of the assembly. Deploying a private assembly is as simple as copying it to the directory of the application using it. Although client applications will typically deploy all their required private assemblies during installation, nothing prevents a new private assembly from being copied over later. This allows for different lifecycles for the client and server and lets both evolve separately. When you copy a new version of a private assembly to the client directory, if the application has a previous copy of the assembly, the new copy overrides the old copy because a file directory can’t have multiple files with the same name. Private assemblies are usually backward-compatible, meaning that they must support all the functionality available in the previous version. If that isn’t the case, an old client application will break when it tries to access functionality in the new version that differs from the old version.

A shared assembly is an assembly that can be used by multiple client applications. You must install shared assemblies in a well-known global location called the global assembly cache (GAC). The GAC can support multiple versions of the shared assembly, enabling side-by-side execution of different versions of the assembly. That means that if an older version is still present, a shared assembly doesn’t ...

Get Programming .NET Components, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.