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

问题描述 投票:0回答:4

我收到此错误

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 Framework 版本(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>

如何修复此错误?


2020-05-26更新:
对于任何面临这个问题的人,我不建议这样做,但根据我的经验,我已经卸载并重新安装了 Visual Studio,问题就消失了。

c# .net msbuild nuget nuget-package-restore
4个回答
147
投票

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

正如论坛中所述:

我对一个旧项目也有同样的情况(在使用 git 本地移动到旧版本之后)。删除“obj”文件夹解决了问题,干净是不够的。

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


16
投票

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

Get-ChildItem -Filter obj -Recurse -Force | Remove-Item -Recurse -Force

5
投票

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

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


0
投票

如果您使用 git bash,您可以使用此命令删除所有 obj 目录:

find -iname "obj" -type d -exec rm -fR {} \;
© www.soinside.com 2019 - 2024. All rights reserved.