【问题标题】:How to run normal windows .exe in raspberry PI running Windows IOT core如何在运行 Windows IOT 核心的树莓派中运行普通的 windows .exe
【发布时间】:2018-07-17 09:06:39
【问题描述】:
我对 Windows 核心平台非常陌生。
我在我的普通 Windows 10 主机上使用 Visual Studio 2015 开发了一个控制台应用程序,它在使用英特尔(I5/I7)处理器的本地机器上运行得非常好。
现在我必须将我的应用程序移动到运行 Windows IOT 核心的 PI。我对我的文件进行了 xcopy 并尝试使用我的 Windows 主机的 power shell 运行,但事实是……我无法运行我的应用程序并收到以下错误消息。
为什么我的应用程序没有在 PI 中运行?事实上,我的应用程序是为英特尔处理器的 X86 平台编译的。这真的是原因吗??如果是这样,我如何编译我的源代码以针对 ARM 处理器。请让我知道解决方法。提前致谢。
【问题讨论】:
标签:
windows
raspberry-pi
windows-10-iot-core
【解决方案1】:
这看起来不像是架构不匹配,它看起来像是 .NET Framework 不匹配。 (您的代码必须是 AnyCPU,因为其他选项都不能同时在 Intel 和 ARM 上运行,显然您的代码正在开始运行)
异常发生在您使用的库之一 log4net 中。您必须找到适用于该 .NET Framework 版本的 log4net 版本,或者删除该库并找到另一种生成日志的方法。
【解决方案2】:
Windows IoT Core 支持 UWP 和非 UWP 应用。 IoT Core 是一个以 UWP 为中心的操作系统,UWP 应用程序是其主要应用程序类型。通用 Windows 平台 (UWP) 是跨所有 Windows 10 版本的通用应用程序平台,包括 Windows 10 IoT Core。
除了传统的 UI 应用程序之外,IoT Core 还添加了一种新的 UWP 应用程序类型,称为“后台应用程序”。这些应用程序没有 UI 组件,而是有一个实现“IBackgroundTask”接口的类。
IoT Core 支持某些传统的 Win32 应用类型,例如 Win32 Console Apps,但仅支持 C++ 在 IoT Core 上开发 Win32 应用。
【解决方案3】:
如果你打开powershell和CD进入解决方案项目文件夹
要编译你的树莓派代码,你需要使用 win-arm 作为目标来编译它
您可以发出以下命令之一:
dotnet publish -c Debug -r win-arm
dotnet publish -c Release -r win-arm
然后它会将其编译到相对于您选择的发布配置文件的 bin 文件夹中
'..\bin\Debug\netcoreapp2.0\win-arm\publish'
将发布文件夹的所有内容复制到树莓派上选择的目录中。
这将能够在运行 Windows IoT Core 的树莓派上运行简单的 .NET Core 控制台应用