【发布时间】:2011-01-12 14:58:27
【问题描述】:
我有一个 MFC 应用程序,我正在尝试打包以进行部署。它似乎取决于文件“msvcr90.dll”、“msvcp90.dll”和“mfc90.dll”。分发这些文件的正确方法是什么?
我不能使用合并模块,因为我的安装程序不支持它们。 我知道我可以运行 VCRedist_x86.exe,但出于各种原因我不想这样做。
据我所知,我唯一的选择是将文件安装为 Private Side-by-Side 程序集。这是正确的吗?
根据http://msdn.microsoft.com/en-us/library/ms235317(VS.80).aspx,安装私有程序集的正确方法是将“Microsoft.VC90.CRT”和“Microsoft.VC90.MFC”文件夹复制到与可执行文件相同的文件夹中。这是解决问题的正确方法吗?它可以工作,但是以这种方式复制系统文件似乎有点 1990 年代。任何人都可以向我展示一个这样做的另一个应用程序(或至少一个演示项目)的示例吗?
最后,我什么时候需要担心为我的应用程序分发 .manifest 文件?我应该显式安装 XML 文件,还是以某种方式嵌入到我的可执行文件中?
【问题讨论】:
-
FWIW 我问了一个关于运送 CRT DLL 的类似问题。 stackoverflow.com/questions/2131093/…
-
欢迎来到 DLL Hell,第 3 章。*(前两章讨论文件位置问题和版本问题。)
标签: c++ deployment assemblies runtime crt