【问题标题】:Upgraded to .NET 4.5, now "value does not fall within the expected range"升级到.NET 4.5,现在“价值不在预期范围内”
【发布时间】:2020-02-12 22:44:06
【问题描述】:

我收到一个错误框弹出窗口,提示 TargetFrameworkMoniker:值不在预期范围内。我正在使用 VisualStudio 2012。这是一个窗体应用程序。我四处搜索并发现当表单中的元素具有重复名称时会出现此错误,而我的表单没有。我已经升级了解决方案中的所有其他项目,这是最后一个。

重现步骤:

  1. 右键单击项目并转到应用程序中的属性 标签

  2. 将目标框架从 .NET Framework 4 更改为 .NET Framework 4.5

  3. 在询问我是否真的确定的方框上单击“是”。

  4. 弹出错误信息。

我不确定如何使用堆栈跟踪找到真正的错误。

有人有什么建议吗?

【问题讨论】:

  • 当您尝试执行此操作时项目是否正在运行?如果我尝试更改设置并且不释放正在运行的调试器,我也会遇到类似的问题。
  • 有趣的是,我重新启动了 Visual Studio,当我打开属性时,它已经在 4.5 上。很奇怪。谢谢你的帮助。

标签: .net visual-studio-2012


【解决方案1】:

这仍然发生在 VS 2017 和 VS 2019 中,例如当您从 Framework 4.5 升级到 4.5.2 或类似的东西时。它可能发生在任何类型的项目中,通常是当您将一个或多个引用的项目逐一更新为新的 .NET 版本时。

原因如下:系统在相应文件中更新了框架的版本并将其保存到磁盘,但是在尝试像通常那样关闭/重新打开项目后仍然设置了dirty-flag .

Visual Studio 然后尝试更新内存中的文件,该文件已使用新版本刷新,但它希望旧版本存在。因此出现错误:在您的情况下,它预计会看到 4.0,但它已经是 4.5。

VS 中的错误从未得到修复,是加载的内存文件与磁盘上已有文件之间的同步问题。

关闭/重新打开 Visual Studio 将解决此问题。卸载/重新加载(鼠标右键单击项目)单个项目也将解决问题。

当您先更新引用的项目,然后更新正在使用的项目时,这似乎会发生。但我无法在所有场景中始终如一地重现它。

这与您提到的一些博客文章中解释的“重复名称”情况无关。

【讨论】:

  • 谢谢!刚刚在 VS2019 中将 4.5 项目重定向到 4.7.2 时发生在我身上。卸载/重新加载就行了。
  • 它有帮助!当我尝试将我的 4.8 项目降级到 4.5.2 时,我遇到了同样的问题,我只需关闭所有文件并清理解决方案,然后再次将其降级到 4.5.2,它就可以工作了。
【解决方案2】:

我今天在 Visual Studio 2019 中遇到了同样的问题。关闭并重新打开 Visual Studio 解决了该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多