首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在分支之间转换时出现生成错误:您的项目未引用".NETFramework,Version=v4.7.2“框架

在分支之间转换时出现生成错误:您的项目未引用".NETFramework,Version=v4.7.2“框架
EN

Stack Overflow用户
提问于 2018-07-26 22:32:51
回答 8查看 21.8K关注 0票数 55

我们正在使用Git,我们有一个面向整个.NET框架的解决方案。几天前,我开始将解决方案迁移到.net核心。不幸的是,发生了一些事情,这让我回到了主分支(它有完整的.NET框架的代码)。每当我尝试构建应用程序时,我都会得到以下错误:

Microsoft(X86)\

1>D:\Program Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets(186,5):错误:您的项目未引用".NETFramework,Version=v4.7.2“框架。在project.json的"frameworks“部分添加对".NETFramework,Version=v4.7.2”的引用,然后重新运行NuGet restore。

我尝试过清理nuget包,运行git重置,但似乎没有任何帮助。知道是怎么回事吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2020-06-13 00:03:35

通过自定义Visual Studio Build Event自动删除非核心项目的project.assets.json来修复此问题。

更新(2020年6月13日)事实证明,删除project.assets.json会导致出现乱线,因为智能感知需要文件中的引用。因此,更好的修复方法是使用Pre-build事件,仅当项目不是.Net核心时才删除该文件。

这是由我的计算机上的$(TargetFramework) ---> "netcoreapp3.1"标识的。您安装的框架可能会显示不同的标识符,因此请相应地更新脚本(请参见第2行上的ECHO生成的build Output窗口中的文本)。注意:在某些.Net框架版本上,这可能是一个空字符串,这应该不是问题。我们也只比较前7个字符,以忽略版本,以避免在版本发生变化时必须更新脚本。

代码语言:javascript
复制
SET _tgt=$(TargetFramework)
ECHO %_tgt%
IF NOT "%_tgt:~0,7%" == "netcore" (
    cd $(ProjectDir)\obj
    DEL project.assets.json
)

==== 更新(2020年6月13日)在此结束。原始答案保留在下面以提供上下文。 ====

我们将问题缩小到一个文件:{Your project}/obj文件夹中的project.assets.json

解决方案是删除这个文件,而不是每次我们需要切换项目时手动删除它,我们在Visual Studio中创建了一个构建后事件,以便在每个成功的核心构建之后删除它(显然,如果您在构建之前运行该脚本,您的核心项目将不会构建)。您可以自定义脚本来删除您认为有问题的任何文件/文件夹,但我们的问题仅限于该单个文件。

代码语言:javascript
复制
cd $(ProjectDir)\obj
del project.assets.json

注意:如果有问题的工件已经存在,您将需要手动删除它一次,因为构建后事件只会在成功构建之后运行。

票数 14
EN

Stack Overflow用户

发布于 2018-08-29 18:43:07

当我将一些项目从4.6.2升级到4.7.2时,我遇到了一个类似的问题--这发生在我们的ASP.Net核心解决方案目标是完整的框架,以及我们的WPF解决方案。

最初,似乎是随机项目出现了这个错误,其他具有几乎完全相同的csproj的项目构建得很好,而其他项目则失败了。消息中的“re-run NuGet restore”也让我走错了路(其中一些项目甚至没有NuGet引用……)

这个问题似乎源于包含一个project.assets.json文件的项目obj文件夹,我不确定这个文件是什么时候生成的--可能是过去的遗物,清理项目并不会删除它。该文件指向以前的框架,在我的例子中为4.6.2 -手动删除每个不会构建的项目的bin/obj文件夹,然后重新构建为me解决了这个错误。这也解释了为什么当我为了自己的理智而克隆存储库时,它也构建得很好。

票数 146
EN

Stack Overflow用户

发布于 2020-01-28 19:48:28

  1. Call git clean -dfX-从工作树中删除未跟踪的文件
  2. Rebuild solution
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51541371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档