我创建了带有“在静态库中使用MFC”选项的MFC应用程序。

我正在使用Installshield为我的应用程序创建安装。我应该在installshield中添加哪些依赖项文件或“合并模块”?

是否需要添加“Microsoft C++运行时库”或“Microsoft Visual C++ MFC”合并模块?

最佳答案

静态链接意味着在链接程序阶段foo.lib嵌入在myapp.exe中。不存在对foo.dll的依赖,因此不需要重新分发。您还应该了解,虽然静态链接使您的部署更容易,但实际上它被认为是安全漏洞,因为如果在foo.lib / foo.dll(在本例中为MFC)中发现了漏洞,则Microsoft无法通过更新版本来修补您的应用程序在WinSXS缓存中。在构建计算机上包括最新的Redist,重新构建和重新部署取决于您自己。

我强烈建议创建一个具有基本快照的虚拟机,该快照代表您要支持的最旧的OS,然后在此处测试安装程序。这将有助于确定缺少的依赖关系,然后可以使用诸如Dependency Walker,ILDAsm / .NET Reflactor和ProcessMon之类的工具来解决这些依赖关系。

10-02 02:19
查看更多