为了解决这个问题,我原本猜测System.Runtime.dll
应该是在.NET Framework Dll Folder
,因为在这个dll的Nuget页面中,版本历史不包含4.2.1.0
,但是在阅读了@Scircia的答案后,我尝试将最新的Nuget添加System.Runtime.dll
到项目中Right Click On Project > Property Page > References > Add
。dll 的 Nuget 版本是4.3.1
,但它的 dll 版本是4.6.27406.3
.
添加后,一个新的错误显示:
程序集 'XXXX(It's secret), Version=xxxx, Culture=neutral, PublicKeyToken=xx' 使用 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a',它的版本高于引用的程序集 'System .Runtime,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'
但是我添加的dll是4.6.27406.3
,为什么会出现这个4.0.0.0
错误?经过一番尝试,我终于发现主要原因是,在项目中使用了很多组件.NET Framework 3.5
,所以它应该在运行时运行3.5
,但是当我运行时Right Click On Project > Property Page > Build > Target Framework
,它显示当前使用4.0
。
所以我按照这些步骤将目标框架从更改4.0
为3.5
单击确定,然后再次从3.5
更改为4.0
,然后错误就解决了。也就是说,通过4.0 > 3.5 > 4.0
,web.config 是自动修改的,并且似乎一些需要3.5
被删除的 dll 被删除,成为一个真实的4.0
,并且Framework 4.0
运行System.Runtime.dll
良好。
既然它说需要4.2.1.0
,但我添加4.6.27406.3
了作品,所以我想使用比4.2.1.0
允许的更高版本,不需要完全使用4.2.1.0
.
但还有一点是,由于项目需要运行3.5
才能使 Web UI 包正常工作,更改为 后4.0
,部分 UI 控件失去了功能。
所以我得出结论,XXXX(It's secret).dll
不应该在.NET Framework 3.5
项目中使用。
此外,我使用 Resharper 来查看XXXX.dll
它的显示.NETCoreApp
。