我不能运行单元测试。

我有下一个错误:

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

在app.config:

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

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

我该怎么解决呢?


当前回答

git clean -xdf

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

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

其他回答

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

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

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

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

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

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