1

我使用 Visual Studio 11 Beta 开发了一个应用程序。该应用程序无法在未安装 VS 11 Beta 的计算机上运行...

我已经安装了 .NET Framework 4.5,但它没有帮助......

有没有人对我应该安装或添加文件有什么建议,以便让它在没有 VS11 的任何计算机上工作?

4

1 回答 1

1

当您在使用 Visual Studio 创建新的 C++ 应用程序时创建新项目时,此项目默认将运行时库选项设置为/MD用于发布配置或/MDd用于调试。“使用此选项编译的应用程序静态链接到 MSVCRT.lib。此库提供了一层代码,允许链接器解析外部引用。实际工作代码包含在 MSVCR * .DLL 中,它必须在运行时可用以与 MSVCRT.lib 链接的应用程序。”

您需要做的是转到项目设置,配置属性 -> C/C++ -> 代码生成并将运行时库更改为多线程 (/MT)用于发布/多线程调试 (/MTd)用于调试。这将导致运行时库被静态链接,并且您的应用程序不会尝试在运行时加载该 DLL。

检查运行时依赖关系的好方法是使用Dependency Walker
构建应用程序并将应用程序 (.exe) 拖放到其中,它会显示它的依赖关系,您现在可能会在其中看到MSVCR110.DLL。当您将运行时库的使用更改为 /MT 时,重新构建您的应用程序并检查此依赖项是否真的消失了 :)

于 2012-06-02T13:01:44.863 回答