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

时间:2015-09-14 12:53:31

标签: c# windows win-universal-app raspberry-pi2 iot

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

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

5 个答案:

答案 0 :(得分:2)

Console applications are supported in Windows IoT but apparently in C++ only。也许您可以尝试创建一个具有a very simple C++ console application的解决方案,该解决方案只处理与用户的交互以及包含所有逻辑和硬件相关代码的C#类库。

答案 1 :(得分:1)

似乎可以使用标准的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:>测试 你好世界

最奇怪的事。

我还没有测试过这个,但是我想你在未实现的API中遇到了麻烦,因为只有一部分.NET(与后台应用程序(IoT)相同?)存在于Pi上,所以你必须"手动"注意不要使用未实现的东西(或者在Background Application" mode"中最常用的代码,在最后阶段,转移到标准的.NET 4.5并添加控制台代码)。

答案 2 :(得分:0)

如果您仍希望继续使用C#,则将应用程序创建为空白通用Windows平台应用程序可能就足够了。)如果RPi2在未连接HDMI电缆的情况下打开电源,则不会实例化UI 2 。)您可能会发现使用附带的UI作为实时调试应用程序的方法很有用。

答案 3 :(得分:0)

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

在没有整个用户界面的情况下启动并获得额外的资源奖励。,但仍然可以通过网络访问。

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

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

要修改设备的状态以启用无头模式,请将setbootoption实用程序与无头arg一起使用:

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

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

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

设备将启动黑屏。

答案 4 :(得分:0)

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

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

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

  1. 检查dotnet可用于:

dotnet --info

  1. 最后在设备上复制应用程序输出(发布文件夹)
  2. 您应该可以运行:

dotnet。\ myapp.dll