如何修复`您的项目未引用“.NETFramework,Version=v4.6.1”框架...`

Luk*_*uke 30 .net c# msbuild nuget nuget-package-restore

Your project does not reference ".NETFramework,Version=v4.6.1" framework. Add a reference to ".NETFramework,Version=v4.6.1" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.从公司存储库签出项目并在我的机器上重建后,我收到此错误 。
当我尝试安装 .Net461(从这里下载)时,他们说

此计算机上已安装 .NET Framework 4.6.1 或更高版本的更新。

这是我机器上的所有 .NET 框架版本(Windows 10 1703)

PS C:\Users\longnx\Downloads> & '.\check-dotnet-framework-version (1).ps1'

PSChildName                      Version        Release
-----------                      -------        -------
v2.0.50727                       2.0.50727.4927
v3.0                             3.0.30729.4926
Windows Communication Foundation 3.0.4506.4926
Windows Presentation Foundation  3.0.6920.4902
v3.5                             3.5.30729.4926
Client                           4.7.03062      461814
Full                             4.7.03062      461814
Client                           4.0.0.0


PS C:\Users\longnx\Downloads>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?


2020 年 5 月 26 日更新:
对于遇到此问题的任何人,我不建议这样做,但根据我的经验,我已经卸载并重新安装了 Visual Studio,问题消失了。

小智 75

我从谷歌搜索中找到了这个链接并尝试了它,它解决了我的问题,所以我想我可以分享删除 obj 文件夹似乎有效。

正如它在论坛中所说:

我有一个旧项目(在使用 git 在本地移动到旧版本之后)。删除 'obj' 文件夹解决了这个问题,clean 是不够的。

两个用户发现这解决了问题。大多数人还发现先清理然后手动删除 obj 文件夹,然后重做 nuget 恢复似乎可以解决问题。

  • 对我也适用 (6认同)
  • 也为我工作过 (4认同)

Art*_*Cam 15

该错误可以通过删除 obj 文件夹来解决。但是,如果解决方案中有多个项目,则定位并删除所有 obj 文件夹可能会是一项繁重的工作。因此,您可以在代码存储库的根目录(或解决方案文件夹中)运行此 PowerShell 命令来递归查找并删除 obj 文件夹及其内容。

Get-ChildItem -Filter obj -Recurse -Force | Remove-Item -Recurse -Force
Run Code Online (Sandbox Code Playgroud)


小智 5

大多数时候,当我遇到此错误时,我只是删除或重命名 OBJ 文件夹,然后尝试以管理员身份运行 Visual Studio(没有太大区别,但当我从某些教程网站下载项目时会有所帮助)并再次构建应用程序。

但如果这不起作用,请在项目设置/属性页面中检查 NuGet 包的版本与 .net 版本的兼容性,必须获得正确的 NuGet 包和 .net 版本是构建和编程的必要条件。此外,删除并重新安装 Visual Studio 并再次安装也永远不是一个选项,因为卸载并再次安装需要时间。