将项目从4.7.1升级到4.7.2,并遇到了系统对象引用错误。发生了什么?

30 浏览
0 Comments

将项目从4.7.1升级到4.7.2,并遇到了系统对象引用错误。发生了什么?

在问题搜索中没有找到与这个确切情况相符的结果。

我将一个.NET Framework 4.7.2库添加到一个包含3个项目的网页解决方案中,这些项目都是4.7.1版本的。在我尝试引用4.7.2库中的对象之前,一切都正常工作。

我找出了问题所在,并将每个项目都设置为4.7.2版本。

编译完全正常。但是当我运行它时,出现以下错误:

编译器错误消息:CS0012:类型“System.Object”在一个未引用的程序集中定义。您必须添加对程序集“netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”的引用。
第82行:         
第83行:         
第84行:             @Html.Snippet("mysnippetname")  <<-- 这一行被标记
第85行:         
第86行:     

我对为什么它要求引用netstandard的原因感到困惑,因为我在解决方案中没有任何netstandard项目。当我使用4.7.1版本时,它也没有抱怨过。在编译和运行期间,我没有添加任何新的代码。

有任何想法吗?

编辑:我将所有内容都改回了4.7.1版本进行测试,但仍然出现相同的错误。

编辑2:我尝试将以下内容添加到web.config文件中,但仍然出现相同的错误:

0
0 Comments

问题出现的原因是主项目未包含新库的NuGet包,同时其中一个现有项目使用了旧的NuGet包,尽管似乎并未使用它。解决方法是移除这些问题的NuGet包。

代码示例:

// Updated project to framework 4.7.2 from 4.7.1 and got system.object reference errors. What gives?
Aggh. Found the problem. Actually 2. The main project hadn't included the nuget package for the new library (which is idiotic on my part) and one of the existing projects had an old nuget package. Wasn't even using it as far as I can tell. I removed those and it works now.
Thanks for the suggestions everyone.

简而言之,这篇文章介绍了一个开发者在将项目从4.7.1框架升级到4.7.2框架后遇到的问题。开发者发现项目中有两个问题,一个是主项目未包含新库的NuGet包,另一个是其中一个现有项目使用了旧的NuGet包,尽管并未使用它。开发者解决问题的方法是移除这些问题的NuGet包,问题随之解决。感谢大家的建议。

0