I'm writing a Telegram bot in C# in order to then host it on the server. When you try to release a project with the dotnet publish -c release -r ubuntu.22.04-x64 --self-contained command, an error appears as in the screenshot below enter image description here

我try 使用dotnet workload update命令来更新软件包,但没有任何效果.以前创建并使用同一团队发布的项目可以再次发布,但此团队已停止处理新项目

推荐答案

错误消息指出访问https://aka.ms/netsdk1083,它重定向到.NET SDK uses a smaller RID graph,其中指出:

针对.NET 8或更高版本的项目现在使用更小, "可移植的"运行时标识符(RID)图.

Previous behavior.NET SDK使用复杂的RID图来确定 生成或发布项目时的资源.

New behavior Starting in .NET 8,.NET SDK使用较小的图形 仅包含可移植RID,适用于面向.NET 8或 更高版本.这意味着SDK不会识别 默认情况下,特定于版本或特定于发行版的RID.

Version introduced.NET 8 RC 1

Type of breaking change:这一改变是一种行为改变,可以 还会影响源代码兼容性.

Reason for change:RID图的维护和理解成本很高, 这就要求.NET本身以一种脆弱的方式具有版本意识..NET中的 团队和社区花费了大量的时间来更新 将此类更新绘制成图表并向后移植到以前的版本.长期的 目标是停止更新RID图,停止读取它,以及 最终将其移除.这一突破性的变化是朝着这一目标迈出的一步 进球.

Recommended action:使用便携式RID,例如,Linux-<;Arch>;, Linux-MUSL-<;Arch&>;、OSX-<;Arch&>;和Win-<;Arch&>;.

如果需要恢复到以前使用旧的、完整的 RID图中,可以将UseRidGraphMSBuild属性设置为 你的项目文件.但是,旧的RID图不会在 将来try 处理任何其他发行版或架构.

根据.NET RID Catalog:

linux-x64:(大多数桌面发行版,如CentOS、Debian、Fedora、 Ubuntu和衍生品)

linux-musl-x64:(轻量级发行版 使用MUSL,如阿尔卑斯Linux)

Csharp相关问答推荐

我可以将Expressc操作设置为在另一个Expressc操作完成后自动发生吗?

如何禁用ASP.NET MVP按钮,以便无法使用开发人员控制台重新启用它

C#自定义字典与JSON(de—)serialize

哪个nuget包含SecurityStampValidatorOptions

为什么Blazor值在更改后没有立即呈现?

使用LayoutKind在C#中嵌套 struct .显式

NumPy s fftn in C#with pythonnet'

在发布表单时绑定包含附加(嵌套)列表的对象列表的正确语法是什么

有没有办法在WPF文本框中添加复制事件的处理程序?

内部接口和类的DI解析

C#EF Core WHERE IN LINQ FROM LIST WITH.CONTAINS不返回任何内容

如何使用新的Microsoft.IdentityModel.JsonWebToken创建JwtSecurityToken?

在.NET MAUI.NET 8中如何防止按钮点击时出现灰色反馈

具有可空类型的C#NOTNULL约束具有意外行为

为值对象编写自定义JsonConverter

我什么时候应该在Dapper中使用Connection.OpenAsync?

.NET 8在appsettings.json中核心使用词典URI、URI&>

解决方案:延长ABP框架和ANGING OpenIddict中的令牌生命周期

通过mini kube中的远程调试Pod与从emoteProcessPickerScript中解析错误输出的代码错误进行比较

.NET6最小API:操作.MapGet之后的响应