With Visual Studio 2005, Visual C++ applications can be deployed in two ways: publishing an application using ClickOnce technologies, or deploying it using the traditional Setup application using Windows Installer technologies. With Windows Installer deployment, you package the application into a setup.exe file and distribute that file to users; they run the setup.exe file to install the application. With ClickOnce deployment, you publish the application to a centralized location and the user installs or runs the application from that location. For a comparison of these two deployment strategies see .
For information on ClickOnce Deployment see .
For deployment using Windows Installer, you need to package all of the parts of your application and any other dependent libraries and components into an installation package that properly installs and registers all files on the target computer. For more information see
For more information on how to determine what dependent components you have to package with your application see Determining Which DLLs to Redistribute.
Visual Studio allows you to build an installation utility for your application using . Using a wizard, you may specify how your application is deployed to another computer, and in what ways its dependent DLLs and assemblies are to be installed on the target computer.
If you choose to redistribute using merge modules provided with Visual Studio 2005, you need to include merge modules for the Visual C++ assemblies your application depends on in your Setup and Deployment Project. In this way, these assemblies will be installed on the target computer as shared side-by-side assemblies and can be used by your application at runtime. For more information see Redistributing Using Merge Modules and .
If you decide that you need to deploy a Visual C++ assembly as a private assembly for your application, you need to include the DLLs and manifest files that are part of the assembly inside your deployment project. For more information on which DLLs and manifest files form each Visual C++ assembly see . You need to ensure that after Visual C++ DLLs and corresponding manifest files are deployed to the target computer, they are located in the application-local folder in such a way that they can be found and loaded at runtime. For rules on how have to be located relative to the application that uses them, see .
Be sure to include the DLLs and manifest files for a specific assembly. Deploying just the DLLs on the target computer does not enable loading these DLLs. The manifest file for an assembly is used to uniquely identify the assembly and DLLs that are part of the assembly. It is used at runtime to search for assemblies and if missing DLLs cannot be identified as part of assembly, they are not loaded.