4

我遇到了一个针对 .NET 3.5 的程序集的奇怪问题。通过添加引用/浏览到 DLL 包含此程序集时 - 它抱怨:

“MyAssembly.dll”或其依赖项之一需要比项目中指定的版本更高的 .NET Framework 版本。您可以通过单击“项目”菜单上的“属性”,然后在“.NET Framework”下拉框中选择一个新目标来更改 .NET Framework 目标。(在 Visual BVasic 中,通过单击“高级编译器选项...”按钮位于“编译”选项卡上。)您仍想在项目中添加对“MyAssembly.dll”的引用吗?

这个错误似乎没有任何押韵或理由——我们已经尝试了“显而易见”的事情。

使用 DLL 的程序集是 .NET 3.5。DLL 是 .NET 3.5。每个使用的所有程序集都是 .NET 3.5。没有使用 .NET 4.0 [AFAIK]

我可以检查/做什么?DLL 中有一些 COM 互操作 - 可能是这样吗?该项目已从 VS 08 移至 VS 10 - 但同样,仍以 .NET 3.5 为目标。我验证了参考下列出的所有程序集都针对正确的 CLR 版本 [2]。

将目标项目升级到 .NET 4 确实消除了这个问题——但这不是我们目前能够做的事情。

  • 我还应该注意,通过 References/Project [相同的解决方案] 包含它似乎确实有效 - 当将 DLL 降级到 .NET 3.0 时。[这可能不完全准确 - 正在测试很多东西]

在这一点上我没有想法。

4

2 回答 2

2

事实证明,问题出在......奇怪的是......使用 Janus Controls .NET 3.5 组件......似乎与其他组件玩得不好。

截至今天,Janus 控件 [GridEX] 不适用于 VS 10 和 .NET 3.5,......仅适用于 .NET 4 项目,即使该解决方案是在 .NET 3.5 和 VS 2008 中构建的。

于 2010-06-04T20:09:23.720 回答
1

我假设您已经使用 Reflector 或 ILDASM 来检查导致问题的程序集的清单。

您拥有的一种选择是忽略该消息并添加参考。然后尝试在程序集中使用任何类型。您应该会收到更完整的错误消息。

例如,当我尝试引用针对更高框架的类库时,这是我在计算机中遇到的错误:

无法解析主要引用“ClassLibrary2”,因为它间接依赖于 .NET Framework 程序集“mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”,其版本“4.0.0.0”高于当前目标框架中的版本“2.0.0.0”。控制台应用程序1

希望这有助于查明问题。

于 2010-06-04T02:20:24.010 回答