是什么让部分用户成功部署而其他用户成功失败?

时间:2010-01-13 16:36:40

标签: visual-c++ deployment boost fltk

我正在尝试使用安装和部署项目部署Visual C ++应用程序(使用Microsoft Visual Studio 2008开发)。安装后,某些目标计算机上的用户在启动应用程序可执行文件后会收到以下错误消息:“此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决问题。“安装后的另一个用户可以正常运行应用程序。尽管在Visual Studio帮助文件和在线论坛上花了几个小时(大多数帖子可以追溯到2006年),但我找不到这个问题的根本原因。 Stack Overflow上有人有建议吗?提前致谢。其他详细信息如下所示。

该应用程序使用FLTK 1.1.9作为GUI库,以及一些Boost 1.39库(正则表达式,lexical_cast,date_time,math)。

我确定我正在尝试部署应用程序的发行版本(而不是调试版本)。代码生成设置中的运行时库是多线程DLL(/ MD)。

myapp.exe的依赖性walker列出了以下DLL:wsock32.dll,comctl32.dll,kernel32.dll,user32.dll,gdi32.dll,shell32.dll,ole32.dll,mvcp90.dll,msvcr90.dll

在安装和部署项目中,我将以下DLL添加到目标计算机上的文件系统:fltkdlld.dll,以及名为Microsoft.VC90.CRT的文件夹,其中包含msvcm90.dll,msvcp90.dll,mcvcr90.dll和Microsoft .VC90.CRT.manifest。

目标计算机上获取错误消息的安装过程需要先安装.Net Framework 3.5。

有什么建议吗?提前谢谢!

2 个答案:

答案 0 :(得分:1)

将Visual C ++ Redistributable添加到Deployment项目中,并确保在安装时运行Setup.exe而不是MSI。这将调用VCRedist引导程序,以确保您的PC在安装应用程序之前具有这些部分。

Dependency Walker只显示静态(链接时)依赖关系 - 它不可能知道动态依赖关系,例如COM对象。

答案 1 :(得分:1)

去年ATL安全更新后,我遇到了类似的问题。我的应用程序需要比包含的部署项目更高版本的C ++运行时库。

尝试在安装后在目标计算机上运行Windows Update,或直接下载并安装最新的(2009年7月28日)C ++可再发行组件包。

http://support.microsoft.com/?kbid=973551

这解决了我的问题。我还没有修复部署项目。