VC2005中MFC程序的部署问题
在VC6中,Release版本的程序的部署,除了程序自身关联的各个Dll之外,只需添加MFC42.dll即可。
在VC2005中,发生的变化包括:
1.MFC的版本发生变化,最新的版本为8.0,所有应该包括MFC80.dll
2.在VC2005的架构下,采用manifest进行dll的版本确认,因此需要添加MFC程序所需的manifest文件。
在VC2005的安装目录下:D:"Program Files"Microsoft Visual Studio 8"VC"下有一个文件夹为redist专用于
程序的部署和发布。在其中的x86文件夹用于Release版本的程序发布,其中的Microsoft.VC80.MFC文件
夹用于发布MFC程序,包括混合有Unicode以及CLR的程序,可以根据程序需要选择copy。对于我个人的
单纯MFC的程序,只需要复制Microsoft.VC80.MFC.manifest和mfc80.dll即可。其余几个,文件名称中带有
“u”的表示兼容unicode编码,带有“m”表示使用托管代码生成规则。
还有另一个解决manifest文件的办法:
在VC2005的开发环境下,选择项目属性-->清单工具-->输入和输出,在潜入清单位置,选择“否”,这
样VC2005将会直接在Release目录下,exe文件的旁边为您生成一个同名的manifest文件,文件内容和
Microsoft.VC80.MFC.manifest有关联。直接复制这个文件也可以起到效果。
对不太熟练的开发人员,可以直接将这些dll统统复制到自己的exe文件所在目录下,应该可以确保万无
一失,只不过有的文件没有被利用而已。
最简单的程序发布方法莫过于直接复制文件,对依赖的dll文件,可以直接和exe文件放在同一个文件夹下,
而不将其复制到系统文件夹下。