Share via


Packaging and Deployment

In the simplest case, a stand-alone .NET Framework application can simply be executed locally from any computer that the common language runtime is already installed on. Nothing else is required. No registry entries are made; nothing can break any other application or cause it to stop running and simply deleting the file, if it is copied locally. This is enough to clean up the application and leave a "zero footprint" on the computer. Applications run from slow-access devices — like UNC paths, CDs, or floppy disks — behave only slightly differently in that the assemblies are installed in the download cache and later scavenged automatically.

Component-based applications are only slightly more complicated, depending on whether the components are private to the application, shared with related applications, or shared with potentially unknown applications. If all components are private, the component-based application can be treated in the same manner as the stand-alone application. Similarly, if several related applications use the same assembly, the assembly can be located in a common subdirectory. However, if the application uses assemblies that are shared with undetermined applications, these assemblies must be installed in the assembly cache and must have certain properties — for example, unique names and version information — that allow the runtime to ensure that the common language runtime binds the application to the appropriate component versions. An important feature of .NET Framework applications is the ability to maintain application configurations in plain-text files, which allows an administrator to tailor an application's behavior on a particular computer without involving developers. The examples in the following sections walk you through the common scenarios. Although you will not look at ASP.NET deployment in this tutorial, most of the same concepts apply.

See Also

Packaging and Distribution | (1) Hello World | (2) A Simple Componentized Application | (3) Path for Private Components | (4) A Shared Component | (5) Component Versioning | Packaging and Deployment Summary | Appendix A: Additional Packaging and Deployment Information | Appendix B: Packaging and Deployment Tools