【问题标题】:how to change the .NET version targeted by my mixed-mode assembly如何更改我的混合模式程序集所针对的 .NET 版本
【发布时间】:2011-09-12 22:59:46
【问题描述】:

我将一个项目从 VS2008 转换为 VS2010,现在我在运行时得到:

未处理的异常:System.IO.FileLoadException:混合模式程序集是针对运行时版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在 4.0 运行时中加载。

谷歌搜索错误,您似乎可以使用useLegacyV2RuntimeActivationPolicy 强制与旧程序集兼容,但这不是我想要的 - 我想针对 4.0 运行时构建有问题的项目。显然 Visual Studio 项目转换向导没有这样做?

这是一个托管的 C++ 项目。如何更改目标 .NET 版本?

【问题讨论】:

  • 这很奇怪,转换项目后它应该始终以 4.0 为目标。使用记事本打开 .vcxproj 文件并查找 <TargetFrameVersion>。如果它存在,请删除它。
  • 所有 从 *proj 中删除;还是没有骰子

标签: .net visual-studio managed-c++


【解决方案1】:

我认为该消息表明项目引用或包含的是 .NET Framework V2 而不是 V4。

  1. 在项目属性中检查项目是否面向 .NET Framework 版本 4。

  2. 将项目中引用的 .NET Framework V2 程序集替换为面向 .NET Framework V4 的版本。

希望这能解决你的问题。

【讨论】:

  • 每个项目(C# 应用程序、托管 C++ DLL、本机 C++ .lib)都显示“目标框架:.NETFramework,Versionv4.0”。我在哪里可以找到引用的程序集?
【解决方案2】:

好的,明白了,愚蠢的错误:我有一个旧版本的 .DLL 与 .exe 位于同一目录中。更改了构建配置以复制当前的配置(v4.0)。一切都好。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2011-04-30
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2016-05-08
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多