Building C/C++ Isolated Applications and Side-by-side Assemblies

Visual Studio supports a deployment model for Windows client applications based on the idea of isolated applications and side-by-side assemblies. By default, Visual Studio builds all native C/C++ applications as isolated applications that use manifests to describe their dependencies on Visual C++ libraries.

Building C/C++ programs as isolated applications presents a range of advantages. For example, an isolated application is unaffected when other C/C++ applications install or uninstall Visual C++ libraries. Visual C++ libraries used by isolated applications may still be redistributed in either the application's local folder, or by installation to the native assembly cache (WinSxS); however, servicing of Visual C++ libraries for already deployed applications can be simplified by using a publisher configuration file. The isolated application deployment model makes it easier to ensure that C/C++ applications that are running on a specific computer use the most recent version of Visual C++ libraries, while still leaving open the possibility for system administrators and application authors to control explicit version binding of applications to their dependent DLLs.

This section discusses how you can build your C/C++ application as an isolated application and ensure that it binds to Visual C++ libraries using a manifest. The information in this section primarily applies to native, or unmanaged, C++ applications. For information about deploying native C++ applications built with Visual Studio, see Redistributing Visual C++ Files.

In This Section

Concepts of Isolated Applications and Side-by-side Assemblies

Building C/C++ Isolated Applications

Building C/C++ Side-by-side Assemblies

How to: Build Registration-Free COM Components

How to: Build Isolated Applications to Consume COM Components

Understanding Manifest Generation for C/C++ Programs

Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies

Isolated Applications and Side-by-side Assemblies

Deploying Desktop Applications