Merge Modules, Windows Logo Requirements, and Windows File Protection
Visual Studio .NET provides its redistributable files in the form of merge modules. These merge modules encapsulate the redistributable DLLs and can be used by setup projects or other redistribution tools. Using the merge modules ensures that the correct files are redistributed with an application. However, if your installer does not support distributing merge modules, you can redistribute the DLLs embedded in the merge modules. You need to either extract the DLLs from the merge modules or get them from the product CD or DVD. Do not copy files from your hard disk.
For more information on merge modules, see Merge Modules.
"DLL conflict" refers to a situation when another application installs an incompatible version of a file used by your application, causing your application to no longer run.
One way to avoid DLL conflict is to install the redistributable files into the application's local folder, for example, C:\Program Files\Myapp. If files are installed to the application's local folder, the risk of another application overwriting your application's DLLs is minimized. The merge modules provided in Visual Studio .NET are designed to install to the application's local folder by default. This default behavior can be modified to make the files install to a specified folder. Also, it is a Windows logo requirement that an application not install files to the system folder. You can get more information on Windows logo requirements from http://www.msdn.microsoft.com/certification.
Windows 2000 and newer operating systems provide a new feature, Windows File Protection, which prevents the replacement of essential system files installed as part of Windows 2000. Applications cannot overwrite these files because they are used by the system and other applications.