0

我正在将我的解决方案从 VS2010 移植到 VS2012。所有核心逻辑都是用 C++ 实现的,.net 模块通过托管包装器(C++/CLI 桥接器)访问这些功能。

在客户站点,我的一个包装器 dll 无法被他们的项目加载,并出现错误“加载 dll 失败,未找到另一个依赖模块”。但是机器中所有可用的依赖dll。从我开发的另一个 .net 测试应用程序成功加载了相同的 dll。这可能是什么原因?

我在一篇文章中发现 VS2012 已实现“严格平台检查”,因此混合 AnyCPU 和 X64 构建可能会导致此错误。我可以在测试应用程序中重现此错误。但在实际部署中,我所有的项目都是在 64 位机器的 X64 平台上构建的。

http://www.codeproject.com/Articles/562386/Lessons-learned-migrating-to-Visual-Studio-2012-an

4

1 回答 1

0

C++ 编译器自动以最新的 .NET 版本为目标,而 C# 和其他语言在升级期间尝试保留 .NET 框架设置。所以你得到一个不匹配。

解决方案是将非 C++ 项目的项目设置更改为针对相同的较新的 .NET 版本。

于 2013-07-01T05:38:31.240 回答