2

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

该应用程序使用 FLTK 1.1.9 作为 GUI 库,以及一些 Boost 1.39 库(regex、lexical_cast、date_time、math)。

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

myapp.exe 的依赖遍历器列出了以下 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。

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

4

2 回答 2

1

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

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

于 2010-01-13T16:50:43.577 回答
1

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

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

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

这为我解决了问题。不过,我还没有修复部署项目。

于 2010-01-19T23:52:15.513 回答