Deployment is the process by which you distribute a finished application or component to be installed on other computers. In Visual Studio, deployment can be done based on Microsoft Windows Installer technology or on ClickOnce technology. For more information, see Choosing a Deployment Strategy.
An application can be packaged as a single assembly, as a collection of assemblies, as cabinet (CAB) files, as a Microsoft Windows Installer 2.0 package, or as an installer package in another format. For more information, see Deployment Scenarios for .NET Framework Applications.
An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. Assemblies form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions, and they provide the common language runtime (CLR) with the information it must have to be aware of type implementations.
This table shows common deployment tasks.
Versioning
Versioning, which records the specific version of an assembly and the versions of dependent assemblies in the assembly's manifest, is performed only on assemblies with strong names. Strong-named assemblies have identifiers that consist of the assembly's identity plus a public key and a digital signature.
By default, the CLR attempts to locate and bind with the exact version of the assembly that the application was built with, although this behavior can be overridden by configuration file settings.
For more information, see Assemblies in the Common Language Runtime, Assembly Versioning, and Strong-Named Assemblies.