在我的 .NET7 项目我必须使用一个关键的 nuget 包,该包仅在 .NET6.如何将我的项目回滚到 .NET6型

In my .NET7 project I have to use a critical nuget package that is running stable just on .NET6. How can I rollback my project to .NET6

提问人:Mdarende 提问时间:11/17/2023 最后编辑:Joel CoehoornMdarende 更新时间:11/22/2023 访问量:58

问:

在我的 .NET ASP.Net Core C# 项目 (.NET7 VS2022) 我必须使用一个关键的 nuget 包,不幸的是,该包仅在 .NET6.因此,我正在考虑回滚到 .NET6. 我尝试的第一件事是从项目属性目标框架更改为 .NET6.但是编译后,我收到一个错误reg.“project.assets.json”,即.未安装 NET7。在project.assets.json中,我找到了几个指向.NET7 dll的。我不知道我是否在全部使用它们。

有没有系统的方法降级到 .NET6 不打扰当前项目? 我知道这不是一个好的解决方案,但在我获得一个稳定运行的 .NET nuget 包之前,我没有其他选择。

C# 可视化工作室 nuget-package net-7.0

评论

1赞 Ralf 11/17/2023
继续前进对你来说是一种选择吗?我真的无法说出任何关于“安全”降级的信息。这取决于两个项目的具体细节。但我可以看出,升级通常比降级更容易。你有没有看过刚去 Net 8 时的行为?
1赞 Denis Micheal 11/17/2023
.Net7 是一年前发布的,这个关键的 nuget 包是什么,没有稳定版。Net7 版本?
0赞 Mdarende 11/17/2023
@DenisMicheal 它是用于从工业控制器(PLC)读取数据的特殊dll。我认为将该功能拆分为外部 exe(使用 .NET6) 并从我的主应用程序运行此 exe。

答:

1赞 wenbingeng-MSFT 11/22/2023 #1

降级为 .NET6 在不影响当前项目的情况下似乎不太可能。.NET 作为开发框架始终影响代码开发工作。

但是对于“project.assets.json”,.NET7 未安装“,通常可以删除项目所在文件夹下 obj 文件夹下的 project.assets.json 文件,然后重新构建项目。

如果上述解决方案不起作用,您可以参考以下链接中的其他答案:

get error Assets file 'obj\project.assets.json' doesn't have a target for '.NETCoreApp,版本 = v2.2'