一段时间前,我用编写文本到语音,从语音到文本机器人。它在我的Windows上运行得很好。我决定使用Raspbian将此软件带到Raspberry Pi 4中,但当我尝试加载我的应用程序时,出现了以下错误:
Unhandled Exception: System.TypeLoadException: Could not load type of field 'MyAppName.Form1:speechRecognizer' (2) due to: Could not load file or assembly 'Microsoft.CognitiveServices.Speech.csharp, Version=1.6.0.28, Culture=neutral, PublicKeyToken=d2e6dcccb609e663' or one of its dependencies. [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'MyAppName.Form1:speechRecognizer' (2) due to: Could not load file or assembly 'Microsoft.CognitiveServices.Speech.csharp, Version=1.6.0.28, Culture=neutral, PublicKeyToken=d2e6dcccb609e663' or one of its dependencies.
我是Linux新手,不知道如何解决这个问题!
发布于 2019-12-09 10:11:44
听起来你想用Microsoft.CognitiveServices.Speech在C#上创建一个GUI应用程序,让它在Raspberry 4和Raspbian上运行。
就像@Rabban在评论中说的,WinForms只支持.NET,即使是.NET Core (跨平台版本的.NET),你也可以参考README.md of GitHub repo dotnet/winforms的内容来了解它。
因此,为了实现您的需求,所必需的需求是您想要使用的所有框架、库和运行时,必须支持ARM CPU上的Linux。然后,我研究了一下,如下所示。
Microsoft.CognitiveServices.Speech,我从https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech下载了它的nuget包,并使用7zip查看它的runtimes如下图所示,然后我确信ARM64 CPU上的Linux支持它。是的,最新的Raspbian版本Buster支持Respberry 4的ARM64。
Avalonia在C# for .NET Core中是一个跨平台的XAML,根据其GitHub回购的描述,作为图形,我认为它可能支持.NET和iOS的实验支持,因此可能支持.NET和ARM CPU。
同时,还有一个Raspbian #1072上的Avalonia要讨论的问题。为了兼容性,请使用.NET Core2.1并从https://dotnet.microsoft.com/download/dotnet-core/2.1下载它,如下图所示。

最后,我认为开发的最后一个建议是使用Visual中的.NET Core和Avalonia开发应用程序,并使其在PC上运行,然后将该项目的源代码复制到Respberry 4的Respbian上,使其成为一个.NET核心项目,尝试重新构建它以运行。
发布于 2019-12-09 10:15:17
如果您想在raspberry pi上运行windows应用程序,我认为您应该在Raspberry Pi 4中使用IoT核心操作系统。
https://stackoverflow.com/questions/59194679
复制相似问题