【发布时间】:2021-12-27 23:03:00
【问题描述】:
我正在用 C# 开发一个不和谐的机器人,为了让它 24/7 全天候运行,我计划将它托管在一个带有单声道的 pi 零中,因为零无法运行网络核心
我正在使用 Visual Studio 2019 使其以 .NET Framework 4.6.2 为目标,编译后我得到一个带有 exe 和一堆 dll 库的 Release 文件夹,然后尝试使用在我的 pi 中运行该程序
mono 'discord bot net framework.exe'
在我的 Windows 10 PC 上它工作正常,但是当我尝试在 pi 上运行它时,我收到以下错误:
未处理的异常:System.TypeLoadException:无法加载类型 字段 'Discord.Net.Rest.DefaultRestClient:_client' (1) 由于:可能 不加载文件或程序集'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其之一 依赖关系。在 Discord.API.DiscordRestApiClient.SetBaseUrl (System.String baseUrl) [0x00011] 在 :0 在 Discord.API.DiscordRestApiClient..ctor (Discord.Net.Rest.RestClientProvider restClientProvider, System.String userAgent, Discord.RetryMode defaultRetryMode, Newtonsoft.Json.JsonSerializer 序列化器,Discord.RateLimitPrecision rateLimitPrecision, System.Boolean useSystemClock) [0x0006a] in :0 在 Discord.API.DiscordSocketApiClient..ctor (Discord.Net.Rest.RestClientProvider restClientProvider, Discord.Net.WebSockets.WebSocketProvider webSocketProvider, System.String userAgent、System.String url、Discord.RetryMode defaultRetryMode,Newtonsoft.Json.JsonSerializer 序列化器, Discord.RateLimitPrecision rateLimitPrecision, System.Boolean useSystemClock) [0x00021] in :0 at Discord.WebSocket.DiscordSocketClient.CreateApiClient (Discord.WebSocket.DiscordSocketConfig 配置) [0x00020] 在 :0 在 Discord.WebSocket.DiscordSocketClient..ctor (Discord.WebSocket.DiscordSocketConfig 配置)[0x00000] 在 :0 在 Not_traso.StartUp.ConfigureServices (Microsoft.Extensions.DependencyInjection.IServiceCollection 服务) [0x00015] 在 :0 处 Not_traso.StartUp.RunAsync() [0x0001e] in :0 在 Not_traso.StartUp.RunAsync (System.String[] args) [0x00065] 在 :0 在 Not_traso.Program.Main (System.String[] args) [0x00060] 在 :0 在 Not_traso.Program。 (System.String[] args) [0x0000c] 在 :0 [错误] 致命未处理 异常:System.TypeLoadException:无法加载字段类型 'Discord.Net.Rest.DefaultRestClient:_client' (1) 由于:不能 加载文件或程序集 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其之一 依赖关系。在 Discord.API.DiscordRestApiClient.SetBaseUrl (System.String baseUrl) [0x00011] 在 :0 在 Discord.API.DiscordRestApiClient..ctor (Discord.Net.Rest.RestClientProvider restClientProvider, System.String userAgent, Discord.RetryMode defaultRetryMode, Newtonsoft.Json.JsonSerializer 序列化器,Discord.RateLimitPrecision rateLimitPrecision, System.Boolean useSystemClock) [0x0006a] in :0 在 Discord.API.DiscordSocketApiClient..ctor (Discord.Net.Rest.RestClientProvider restClientProvider, Discord.Net.WebSockets.WebSocketProvider webSocketProvider, System.String userAgent、System.String url、Discord.RetryMode defaultRetryMode,Newtonsoft.Json.JsonSerializer 序列化器, Discord.RateLimitPrecision rateLimitPrecision, System.Boolean useSystemClock) [0x00021] in :0 at Discord.WebSocket.DiscordSocketClient.CreateApiClient (Discord.WebSocket.DiscordSocketConfig 配置) [0x00020] 在 :0 在 Discord.WebSocket.DiscordSocketClient..ctor (Discord.WebSocket.DiscordSocketConfig 配置)[0x00000] 在 :0 在 Not_traso.StartUp.ConfigureServices (Microsoft.Extensions.DependencyInjection.IServiceCollection 服务) [0x00015] 在 :0 处 Not_traso.StartUp.RunAsync() [0x0001e] in :0 在 Not_traso.StartUp.RunAsync (System.String[] args) [0x00065] 在 :0 在 Not_traso.Program.Main (System.String[] args) [0x00060] 在 :0 在 Not_traso.Program。 (System.String[] args) [0x0000c] 在 :0
我用 sudo apt install mono-complete 安装了单声道并更新到最新版本,
运行 mono --version 给出
Mono JIT 编译器版本 6.12.0.122(压缩包 2021 年 2 月 22 日星期一 17:44:05 UTC)
版权所有 (C) 2002-2014 Novell, Inc、Xamarin Inc 和贡献者。 www.mono-project.com
TLS:__thread
SIGSEGV:正常
通知:epoll
架构:armel,vfp+hard
已禁用:无
杂项:软调试
口译员:是的
LLVM:是(610)
暂停:抢先
GC:sgen(默认并发)
我尝试使用 NuGet 最新版本和一些以前的版本安装 System.Net.Http,但它不起作用
我以前没有使用过 pi 或 Linux,所以我什至不知道在哪里寻找丢失的库或做什么
【问题讨论】: