繁体   English   中英

用 c# 编写的 Windows IoT 控制台应用程序?

[英]Windows IoT console application written in c#?

我正在尝试制作可以在运行 Windows IoT 的 Raspberry PI 上使用网络摄像头拍照的应用程序。 问题是我找不到控制台应用程序模板。通用 Windows 空白应用程序模板为我提供了 GUI,但我打算从 python 脚本调用这个应用程序,所以它应该没有。 Windows IoT 项目提供后台任务模板,但输出是 .winmd 文件,我也无法从 python 执行它。

使用 c# 在 Windows IoT 中创建简单控制台应用程序的方法是什么? 谢谢

Windows IoT 支持控制台应用程序,但显然仅支持 C++ 也许您可以尝试创建一个具有非常简单的 C++ 控制台应用程序的解决方案, 该应用程序只处理与用户的交互以及一个包含所有逻辑和硬件相关代码的 C# 类库。

似乎适用于标准的 c# 控制台应用程序。 我是怎么发现的? 我使用了 Reflector 并检查了 Pi 上 c:\\windows\\system32 中的所有 exe 文件,其中一个是 .NET 程序集:netcmd.exe 当我在 Reflector 中查看 netcmd.exe 时,它​​说它是使用标准的 .NET 4.5 构建的,这不可能吧? 但是我使用框架 4.5 制作了一个标准的 c# 控制台应用程序,并添加了以下内容:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello world");
    }
}

将 test.exe 放在 Pi 上,瞧:C:>test Hello world

最奇怪的事。

我还没有测试过更多,但我想你会遇到未实现的 API 的问题,因为 Pi 上只存在 .NET 的一个子集(与后台应用程序 (IoT) 相同?),所以你必须“手动”小心不要使用未实现的东西(或在后台应用程序“模式”中编写大部分代码,并在最后阶段移至标准 .NET 4.5 并添加控制台代码)。

如果您仍然希望继续使用 C#,那么将应用程序创建为空白的通用 Windows 平台应用程序可能就足够了,如 1.) 如果 RPi2 在没有连接 HDMI 电缆的情况下开机 2.) 您可能会发现使用包含的 UI 作为实时调试应用程序的方法很有用。

如果您将 Win 10 设备用于不需要 GUI 的单个(或多个)应用程序(例如仅用于服务应用程序),您可以使用headless选项启动设备。

这会在没有整个 UI 的情况下启动,并提供额外的资源奖励。 ,但仍然可以通过网络访问。

显示设备的当前状态,使用 setbootoption 实用程序:

  [192.168.0.243]: PS C:\> setbootoption.exe

要修改设备状态以启用无头模式,请使用带有无头参数的 setbootoption 实用程序:

  [192.168.0.243]: PS C:\> setbootoption.exe headless
  [192.168.0.243]: PS C:\> shutdown /r /t 0

要修改设备状态以启用朝向模式,请使用带有朝向参数的 setbootoption 实用程序:

  [192.168.0.243]: PS C:\> setbootoption.exe headed
  [192.168.0.243]: PS C:\> shutdown /r /t 0

设备将启动并显示黑屏。

我能够创建在 Windows 10 IoT 下运行的 .NET 核心(在我的情况下为 3.1)控制台应用程序:

  1. 创建 .net core 控制台应用程序并将其发布到文件夹
  2. 使用 10.0...\\c$ 连接到 Windows 资源管理器(或 ftp)中的设备
  3. 在 c:\\program files\\dotnet 中创建一个文件夹
  4. 下载 arm 32 dotnet 核心运行时(例如https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-3.1.2-windows-arm32-binaries )(注意我用过树莓派 4)
  5. 将其解压到第 3 点的文件夹中
  6. 打开设备的 powershell 终端( https://docs.microsoft.com/en-us/powershell/scripting/getting-started/getting-started-with-windows-powershell?view=powershell-7
  7. 在 powershell 中,将 dotnet 路径添加到路径 env 变量中:

$Env:Path += ";C:\\Program Files\\dotnet\\"

  1. 检查 dotnet 可用于:

dotnet --info

  1. 最后将您的应用程序输出(发布文件夹)复制到设备上
  2. 您应该能够运行:

dotnet .\\myapp.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM