【问题标题】:.NET 3.5 Targeted Project has references with wrong version - 4.0.NET 3.5 目标项目的引用版本错误 - 4.0
【发布时间】:2014-06-16 04:02:51
【问题描述】:

我启动了一个面向 .NET 3.5 的新 C# 类库项目。生成的项目只有 1 个类 - Class1.cs,并且有 3 个引用...

  1. 系统
  2. System.Data
  3. System.Xml

...但这些都指的是 .NET 4.0 版本。构建后,我使用 ILDASM 检查 .dll 文件,发现生成的程序集是 .NET 4.0 版本。

今天才开始。昨天,它按预期工作(其中 3 个引用是 .NET 2.0 版本,生成的 .dll 文件是 3.5 版本)。

什么会导致这种行为?

* 更新 *

我已经卸载了 .NET 4.0 和 VS2010,然后都重新安装了。问题仍然存在。我认为这可能与 CLR 2.0 有关。添加引用时,它会显示过滤到 CLR 2.0 的可用程序集列表,但该列表包含 CLR 4.0 程序集...奇怪...在删除和重新安装 .NET 2.0、3.0 和 3.5 时没有成功。

* 最终更新 *

嗯,无法及时解决,所以我格式化并重新安装了包括操作系统在内的所有内容。解决了它...

【问题讨论】:

  • 您使用的是 WebForms、WinForms、ASP.NET 还是 DLL 项目,而这是类库所引用的?您是否已将 nuget 包安装到项目中?发生这种情况可能有几个原因,但我会从那里开始。如果不检查 IDE 中的物理参考属性,可能是它们被错误地更新了。
  • 嗨 Qpirate,我正在创建最基本的类库项目。它没有被任何东西使用,因为它在“Class1”类中没有实现。我试图确定为什么我的 IDE 工作不正确(我将如何归类),因此我正在使用可能的最基本示例。没有使用 NuGet。 - “检查 IDE 中的物理参考属性”是什么意思 - 你的意思是查找参考文件路径吗?如果是这样,我已经检查过了,它指的是 .NET 4 框架路径。这些引用是强命名并自动定义的。

标签: .net visual-studio-2010 reference


【解决方案1】:

项目->属性->应用程序->目标框架

【讨论】:

  • 是的,如果我理解你的答案正确,你的答案描述了我的问题 - 我有针对 3.5 的项目,但它构建了 4.0。某处必须有另一个开关告诉 .NET 使用特定版本的命名良好的引用。就像我的目标设置被忽略了一样。
【解决方案2】:

我只是删除引用并重新添加它们,但请确保在重新注册它们时,检查添加引用对话框中的Targeting Framework。

如果显示为 4.0 或 4.5,则您的 .csproj 文件未正确注册为 3.5,您需要修复该问题。

尝试卸载并编辑项目文件。在 XML 中查找以下内容

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

更改为 3.5 并重新加载。然后清理解决方案并重建。

【讨论】:

  • TargetFrameworkVersion 已经是 3.5。删除并重新添加引用显示的是 4.0 版本,而不是预期的 2.0 版本。绝对是一个软管系统。
  • 是的,您的解决方案似乎没有正确注册您的 .net。我不知道如何解决它。对不起。
猜你喜欢
  • 2011-09-22
  • 1970-01-01
  • 2010-12-09
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 2020-07-03
相关资源
最近更新 更多