C# 如何修复:添加对";的引用;。NETFramework,版本=v4.7.1“;在;“目标框架”;属性,然后重新运行NuGet restore?

C# 如何修复:添加对";的引用;。NETFramework,版本=v4.7.1“;在;“目标框架”;属性,然后重新运行NuGet restore?,c#,nuget,visual-studio-2019,C#,Nuget,Visual Studio 2019,是的,我尝试过所有类似的QA,但没有任何帮助 我所做的一切都没有帮助: 删除bin/&obj/ 删除project.assets.json 删除/ 重置整个git回购 清理nuget缓存 更改.NetFramework版本 据我所知: 这发生在我的同事一个月前的Win7上,VS19 15.x,更新什么也没做。以为她疯了,把系统搞砸了。现在发生在我身上,Win10,VS19,都是最新的 昨天VS的速度很慢,所以我删除了。VS,可能是相关的 我已经隔离了第一个受影响的项目,它是纯c#.net fra

是的,我尝试过所有类似的QA,但没有任何帮助

我所做的一切都没有帮助:

  • 删除bin/&obj/
  • 删除project.assets.json
  • 删除/
  • 重置整个git回购
  • 清理nuget缓存
  • 更改.NetFramework版本
  • 据我所知:

  • 这发生在我的同事一个月前的Win7上,VS19 15.x,更新什么也没做。以为她疯了,把系统搞砸了。现在发生在我身上,Win10,VS19,都是最新的
  • 昨天VS的速度很慢,所以我删除了。VS,可能是相关的
  • 我已经隔离了第一个受影响的项目,它是纯c#.net framework 4.7.1库,除了system.net库之外没有其他依赖项,没有任何nuget引用
  • 在所有这些之后,删除和重置有一件事起了作用。我已经将DotNetExtensions.csproj重命名为DotNetExtensions1.csproj,现在狗屎像一个符咒一样构建,但当我重新命名它时,同样的错误再次出现
  • WTF?这怎么可能?我还能洗什么

    完整日志:

    Rebuild started...
    1>------ Rebuild All started: Project: DotNetExtensions, Configuration: Release Any CPU ------
    1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\NuGet\16.0\Microsoft.NuGet.targets(198,5): error : Your project does not reference ".NETFramework,Version=v4.7.1" framework. Add a reference to ".NETFramework,Version=v4.7.1" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
    

    获取一个日志文件并通过运行它(有关说明,请参阅自述文件)。如果使用一个名称而不使用另一个名称,则听起来可能是在缓存,或者项目名称(
    DotNetExtensions
    )与构建过程中的某个名称冲突。无论哪种情况,日志文件都将包含线索


    还可能是一个依赖的NuGet软件包已更新为需要.NET Framework 4.7.1,在这种情况下,可能需要实际完全重新运行NuGet还原,尤其是在旧式的.csprojs上,更改目标框架仍然会保留当前软件包版本。在这种情况下,您必须删除packages文件夹(如果存在),或者以使一切正常工作的以前的包版本为目标。

    获取一个日志文件,并在中运行它(有关说明,请参阅自述文件)。如果使用一个名称而不使用另一个名称,则听起来可能是在缓存,或者项目名称(
    DotNetExtensions
    )与构建过程中的某个名称冲突。无论哪种情况,日志文件都将包含线索


    还可能是一个依赖的NuGet软件包已更新为需要.NET Framework 4.7.1,在这种情况下,可能需要实际完全重新运行NuGet还原,尤其是在旧式的.csprojs上,更改目标框架仍然会保留当前软件包版本。在这种情况下,您必须删除packages文件夹(如果它存在的话),或者以使一切正常工作的以前的包版本为目标。

    我有一个非常类似的错误,除了:

    Your project does not reference ".NETFramework,Version=v4.8" framework. Add a reference to ".NETFramework,Version=v4.8" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
    
    对我有效的方法是使用Visual Studio 1)清理解决方案,然后2)删除所有obj和bin文件夹。然后在不重新启动VS的情况下构建


    我认为project.assets.json文件的缓存不好。还原需要合并的存储时,它一定已损坏。VS没有自动加载项目。它与TargetFrameworks无关,因为当您将该属性添加到csproj文件时,另一个构建步骤失败。

    我遇到了一个非常类似的错误,除了:

    Your project does not reference ".NETFramework,Version=v4.8" framework. Add a reference to ".NETFramework,Version=v4.8" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.
    
    对我有效的方法是使用Visual Studio 1)清理解决方案,然后2)删除所有obj和bin文件夹。然后在不重新启动VS的情况下构建


    我认为project.assets.json文件的缓存不好。还原需要合并的存储时,它一定已损坏。VS没有自动加载项目。它与TargetFrameworks无关,因为当您将该属性添加到csproj文件时,另一个构建步骤失败。

    我尝试将项目移植到.net 5.0,但在恢复到4.8时遇到此问题。这对我很有用:

  • 清洁工程
  • 删除bin和obj文件夹
  • 再次构建

  • 我试图将我的项目移植到.NET5.0,但在恢复到4.8时遇到了这个问题。这对我很有用:

  • 清洁工程
  • 删除bin和obj文件夹
  • 再次构建

  • 谢谢,从未尝试过二进制日志,看起来很有用,但我看不到任何新的东西,如果你能看一看,我将不胜感激。在此期间,我将尝试完整的金块恢复部分。虽然没有nuget软件包,但不知道它如何解决问题。在这种情况下,可能是MSBuild与SDK中名为
    DotNetExtensions
    的内容冲突。很难解释为什么它在重命名项目时突然起作用。可能是,这与我和我的同事在相隔几周后出现的情况一致,可能是通过更新添加和交付了一些新的内容,因为这个项目已经构建了大约10年,没有出现任何问题,代码已经多年没有接触过,现在是这样。如果找不到原因,我将暂时重命名它,并查看一段时间内会发生什么。NuGet.exe还原DotNetExtensions.sln MSBuild自动检测:使用“C:\Program Files(x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\bin”中的MSBuild版本“16.9.0.16703”。无事可做。此解决方案中的任何项目都没有为NuGet指定任何要还原的包。这听起来肯定像是某种依赖关系——要么是NuGet包(您提到的未使用),要么是与工具链相关的SDK,.NET目标包或Visual Studio更新-随着时间的推移,对您双方都进行了更改,以使项目名称导致错误。如果有第三个环境仍然可以使用,也可以从那里收集日志并查看差异。谢谢,从未尝试过二进制日志,看起来很有用,但我从中看不到任何新内容,如果您能看一看,我将不胜感激。在此期间,我将尝试完整的金块恢复部分。虽然没有nuget软件包,但不知道它如何解决问题。在这种情况下,可能是MSBuild与某些内容冲突