【发布时间】:2016-08-01 16:10:10
【问题描述】:
我的解决方案包含 2 个项目。
第一个项目是一个 C++ Win32 应用程序,第二个项目是一个 C# 库,它管理 2 个不是由我构建的其他 C# 库。这背后的想法是构建一个 C# 库来处理其他 2 个 C# 库。
现在,这 2 个 C# 库是为 .NET 3.5 构建的,我已将我的 C# 项目设置为也为 .NET 3.5 构建。
我创建了一个 C++ Wrapper,效果很好。尝试创建我的 C# 库从其他 2 个库之一获取的类的对象时出现问题。
Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.
现在,我已经查看了十多个发布此问题的帖子。他们都没有解决我的问题。我已经为我的可执行文件(我的 C++ 项目)以及我的 C# 库尝试了几个不同的配置文件。
我试过了
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"></supportedRuntime>
</startup>
还有其他几个类似的。
【问题讨论】:
-
尝试在任何地方使用相同版本的 .NET...
-
您应该更加关注该错误消息。您说您的目标是 3.5,但错误清楚地表明正在使用 .NET 4。只有当已经使用了一个 .exe.config 文件并且它不是您编写的文件时,才会发生这种情况。您的 VS 版本已经过时了,该更新了。
-
@Phil1970 我实际上使用 .NET 3.5 来处理与 c# 相关的所有内容
-
@Sean 显然,我的评论中的 everywhere 包括 C++/CLI 项目,而不仅仅是 C# 项目。