c# - 在分支之间转换时生成错误:您的项目未引用“.NETFramework,Version=v4.7.2”框架
问题描述
我们正在使用 Git,我们有一个针对完整网络框架的解决方案。几天前,我开始将解决方案迁移到 .net 核心。不幸的是,出现了一些事情,让我回到了主分支(其中包含完整的 .NET 框架的代码)。每当我尝试构建应用程序时,都会收到以下错误:
1>D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5): 错误:您的项目没有引用“.NETFramework,版本=v4.7.2" 框架。在 project.json 的“frameworks”部分添加对“.NETFramework,Version=v4.7.2”的引用,然后重新运行 NuGet 还原。
我已经尝试清理 nuget 包,运行 git reset,但似乎没有任何帮助。知道发生了什么吗?
解决方案
在将某些项目从 4.6.2 升级到 4.7.2 时,我遇到了类似的问题——这发生在我们针对完整框架的 ASP.Net Core 解决方案和我们的 WPF 解决方案中。
最初似乎是随机项目出现此错误,其他具有几乎完全相同 csproj 的项目构建良好,而其他项目则失败了。消息中的“重新运行 NuGet 还原”也让我走错了路(其中一些项目甚至没有 NuGet 引用......)
该问题似乎源于包含 project.assets.json 文件的项目 obj 文件夹,我不确定它何时生成 - 可能是过去的遗物,清理项目并不会删除它。该文件指向以前的框架,在我的例子中是 4.6.2 -手动删除每个无法构建的项目的 bin/obj 文件夹,然后重新构建为我解决了这个错误。这也可以解释为什么当我出于理智而克隆存储库时,它也构建得很好。
推荐阅读
- php - 重定向后显示来自另一个数据库表的特定数据 - Laravel
- node.js - 通过 AWS SES 发送电子邮件时的 Openssl 问题
- xml - 在 XSLT 中使用条件突出显示第一个元素
- c# - 如何用 C# 计算打印预览 Excel 中的打印页数?
- javascript - 在 kuzzle 搜索 javascript-sdk 上获取请求 Content-Length
- java - 错误:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean java.lang.String.equals(java.lang.Object)”
- docker - 无法在 Azure 发布管道中的应用服务内创建 docker 网络
- python - Python 向现有 JSON 文件添加新元素
- c# - Bgr32 位图的 C++/C# 标头
- python - 带有while和if语句的Python For循环:为什么它在第一种情况下不返回?