您的项目没有引用“。net framework,Version=v4.6.2”;框架。添加对“.NETFramework,Version=v4.6.2”的引用;在“目标框架”中;

我不能运行单元测试。

我有下一个错误:

你的项目没有引用".NETFramework,Version=v4.6.2" 框架。在。net framework,Version=v4.6.2中添加一个引用 “TargetFrameworks”属性,然后重新运行NuGet 恢复。< / p >

app.config:

<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>

在项目>属性>应用>目标框架(。NET Framework 4.6.2)

我该怎么解决呢?

91111 次浏览

请做下一步

  1. 清洁解决方案
  2. 清洁文件夹“包”
  3. 删除文件夹“bin”
  4. 删除文件夹"obj"

我在。net 4.71中遇到了同样的问题。在我的例子中,我只是从包迁移。配置为“包引用”

从包迁移。config to PackageReference . config to PackageReference

... 它解决了我的问题。对于我来说,我无论如何都要这样做,所以如果您已经这样做了,我就跳过上面的步骤,迁移到包引用。

我给拉丽莎投了票但我想知道我是怎么走到这一步的可能会有帮助。我添加了一个。net标准项目文件到我的构建(我们的目标是很多平台),它产生了在obj文件夹中找到的碎片。当android健全构建来了,它抛出了obj文件夹。我的解决方案是在构建前清理该文件夹。这是一个困难的问题,因为多年来它一直工作得很好……针遇上草堆。

我遇到了类似的问题,但与v4.7.2。也就是说,我一直得到这样的构建日志消息:

error : Your project does not reference ".NETFramework,Version=v4.7.2" framework. Add a reference to ".NETFramework,Version=v4.7.2" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.

尽管看起来很相似,但上面建议的步骤对我都不起作用。每次构建之后,我都会看到这条消息。似乎什么也帮不上忙。

事实上,问题与此有关,由于迁移,我不得不放两个项目在一个文件夹的代码。其中一个针对net核心,另一个针对net框架,两者都引用了相同的. net标准库。显然,它们共享相同的obj文件夹,Core项目将project.assets.json文件放在这里。实际上,正是这个文件妨碍了框架项目的正常构建。似乎即使你执行从包中迁移。config to PackageReference… . config to PackageReference,这被推荐为可能的解决方案之一。

你可以尝试通过将下面的代码片段放入你的框架项目文件来修复这个问题:

<Project>
...
<PropertyGroup>
<BaseOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/bin</BaseOutputPath>
<BaseIntermediateOutputPath>$(MSBuildProjectDirectory)/out/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
</PropertyGroup>
...
</Project>

它立刻对我起了作用,直到后来我仔细地读到为什么我们需要它,为什么它起作用。我意外地发现它在将一个示例WPF应用程序迁移到。net Core 3第2部分下的确保.NET Framework项目仍在构建节。BaseOutputPathBaseIntermediateOutputPath msbuild变量可以在那里找到,不确定它们是否在任何地方都有良好的文档。

我正在使用一个非常老的。net项目,它一直工作得很好,直到它突然停止。升级Visual Studio固定为我你。

在VS2017中打开VS2015项目时,我就遇到了这种情况。从obj文件夹中删除project.assets.json就成功了。

无论如何,该消息的框架在文件中丢失了,我没有添加它,尽管删除了它。

对于我的例子,删除工程文件夹下的.pkgrefgen/文件夹,它包含一个文件project.assets.json,引用旧的。net框架

git clean -xdf

这样应该可以了。这在Jenkins中也适用。(我们只是用一个修改过的脚本重播了失败的构建,首先运行git clean)。

出于某种原因,MSBuild / Visual Studio在切换针对不同版本的。net框架的分支时感到困惑,所以我不得不在分支之间切换时定期进行git清理。

重命名项目为我解决了这个错误。问题发生在我创建。net Core项目之后,然后我删除了它,并创建了一个同名的。net Standard项目。Obj文件夹根本不存在。删除bin文件夹,包,清洁和重建解决方案和获得最新的覆盖没有帮助。

我没有尝试过这样做,但是这个线程建议的解决方法是在csproj标签中包含:

<ResolveNuGetPackages>false</ResolveNuGetPackages>

在VS2019上,我必须遵循错误消息并编辑项目目录中的project.json文件。

was ".NETFramework,Version=v4.0": {} //无论复制的项目被设置为
现在".NETFramework,Version=v4.7.2": {} //设置为当前构建设置为

问题:在VS2017。缺少对。netframework 4.5.2的引用,尽管它被引用为目标框架。

我的解决方案:安装验证框架并重新启动机器。在git清理后,只需在探索和“恢复nuget包”中右键单击解决方案就可以了。

我已经删除了obj文件夹,并在属性窗口中选择所需的目标框架后重新运行构建,它为我工作。

引起问题的文件是项目文件夹内的obj / project.assets.json。删除它并重新构建项目成功了。

不管出于什么原因,我在VS2022中得到了这个构建错误。

在VS2019中同样的构建是成功的。

我在CI/CD过程中遇到了同样的问题,当时我将.net framework版本从4.6.1升级到4.7.2,在本地工作正常,无需任何其他修改。

然而,实际生成构建的jenkins“从”节点在nuget恢复时出现了一些问题,由于某种原因,它无法选择最新的构建。

登录到jenkins从机/节点(基本上是jenkins用来创建构建/工件的机器),转到部署路径,然后尝试删除项目旧的构建以及.nugets文件夹,并触发CI/CD进程再次为我工作。

如果你已经删除了提供nuget包的旧SDK,也会发生此错误,但它仍然在nuget管理器/设置下的包源列表中被引用。删除不再使用的nuget包源来修复此问题。否则,build上的Visual studio将创建带有旧sdk引用的project.assets.json文件,如果路径不在那里,则会得到OP的错误。 在我的例子中,我在我的列表中有DevExpress 20.2,我删除了它来解决这个问题

enter image description here