升级到.NET 4.5,现在“值不在预期范围内”

Ste*_*ein 11 .net visual-studio-2012

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

重现步骤:

  1. 右键单击项目,然后转到应用程序选项卡中的属性

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

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

  4. 弹出错误信息。

我不确定如何使用stacktrace查找真正的错误。

有没有人有什么建议?

Abe*_*bel 9

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

原因如下:系统会在相应文件中更新框架的版本并将其保存到磁盘,但是在试图关闭/重新打开项目后,脏标志仍然会以某种方式设置,就像平常一样。

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

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

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

当您先更新引用的项目,然后再更新使用的项目时,似乎会发生这种情况。但是我无法在所有情况下都一致地对其进行复制。

它与您引用的某些博客文章中解释的“重复名称”情况无关。

  • 谢谢你!刚刚在 VS2019 中将 4.5 项目重定向到 4.7.2 时发生在我身上。卸载/重新加载成功了。 (2认同)

Aji*_*ith 5

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