PiDnx, 在 Windows 10 树莓派 2上运行核心的示例on应用程序

分享于 

14分钟阅读

GitHub

  繁體 雙語
A sample DNX app for running on Windows 10 IoT Core on Raspberry Pi 2
  • 源代码名称:PiDnx
  • 源代码网址:http://www.github.com/DamianEdwards/PiDnx
  • PiDnx源代码文档
  • PiDnx源代码下载
  • Git URL:
    git://www.github.com/DamianEdwards/PiDnx.git
    Git Clone代码到本地:
    git clone http://www.github.com/DamianEdwards/PiDnx
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/DamianEdwards/PiDnx
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    这是什么?

    DNX 很酷。 Windows 10物处理器,适用于 2 is。 当你把它们放在一起时会发生什么?

    树莓派 2 是一台US$35电脑,大约是一包香烟的大小。 它拥有 USB。HDMI和以太网,在微型计算和物联网领域是一个热门打击。 以前,它主要运行Linux衍生品,但最近,它支持一个新版本的Windows: 简单地说,Windows 10的核心就是看看跨平台 ASP.NET 5和and是怎样的一个好地方。

    一直以来都是尝试这样做的事情是,树莓派 2是一个 ARM设备,内核和DNX仅为 x86/x64构建。 这个最近改变了,然而,时间是正确的。

    一个警告

    不要将本文作为支持的声明,由微软或者它的他任何它的他方案对内容进行描述。 为了让用户愉快地使用这些功能,我们已经完成了工作,但是你当然可以自由地登录 Bug,因为你没有任何承诺或者保证 Bug 将被修复,或者已经启用了。 我们对它有兴趣,我们想让你有乐趣。

    你所需要

    让你自己获得以下信息:

    安装 Windows 10物内核

    前往 Windows IoT核心站点并遵循指示,将它的安装在你的微型SD卡。 将卡放入Pi之后,它将启动并重新启动几次,最后显示默认应用程序屏幕。 耐心点,这个过程需要一点时间。 继续说明,以便在 Windows 10机器上安装 Windows 10内核的开发工具。

    设置你的开发环境

    Windows 内核上没有本地控制台,目前通过键盘和鼠标支持的唯一直接交互是在 UWP应用程序中。 are尝试使用DNX部署和运行控制台/服务器应用程序,因此需要通过远程PowerShell会话和UNC来执行这里操作。 按照以下说明操作:使用这些指令获取远程PowerShell工作。 这将要求你的Windows 10机器和引脚连接到同一网络。 我发现把Pi和 Windows 10 dev机连接到相同的物理网络是最容易的方法。 在 Windows 10核心SDK工具附带的IoT监视应用程序使得在网络上查看引脚状态变得简单,并快速连接到它的UNC文件共享以方便文件部署。

    这时我会推荐一些额外的步骤来使用你的引脚更好一些:

    • 更改管理员帐户密码( 安全第一)
      
      net user Administrator [new password]
      
      
      
      
    • 将 pi NAME的设备更改为默认的,比如 Damian-Pi2
      
      SetComputerName [new device name]
      
      
      
      
    • 在Pi上创建一个本地用户帐户,并将它的放入管理员组中,并将它的设置为启动任务( 以后启用远程调试)。
      
      net user [username] [password]/add
      
      
      net localgroup Administrators [username]/add
      
      
      
      

    继续之前,请确认你可以通过使用你创建的帐户通过远程PowerShell和UNC成功连接到你的Pi。

    注意:注意:see这个页面在 Windows 内核支持的命令行 实用工具列表

    正在安装 Windows ARM的DNX

    如前所述,对于 ARM,树莓派 是ARM设备,因此我们需要一个版本的DNX编译为 ARM,而b ) 针对 10内核( OneCore ) 使用的WIN32 API设置。 我们可以使用 dnvm 在开发机器上安装它,稍后我们将使用 dnu publish 将它打包到我们的应用程序中。

    在开发计算机上打开命令提示符并运行以下命令:

     
    dnvm update-self
    
    
    
     
    
    dnvm install latest -r coreclr -arch ARM -u
    
    
    
    
    
    dnvm install latest -r coreclr -arch x86 -u
    
    
    
    
    
    dnvm install latest -r coreclr -arch x64 -u
    
    
    
    
    
    dnvm install latest -r clr -arch x86 -u
    
    
    
    
    
    dnvm install latest -r clr -arch x64 -u
    
    
    
    

    一定要包括 -u switch 在写作时使用不稳定的提要,我们尚未将ARM构建发布到稳定的提要 (nuget.org).。

    之后,你应该能够运行 dnvm list,并在已经安装版本( 这是我清单上最后的2nd 个)的列表中看到 ARM DNX:

    
    C:> dnvm list
    
    
    
    Active Version Runtime Architecture Location Alias
    
    
    ------ ------- ------- ------------ -------- -----
    
    
     1.0.0-beta4 clr x64 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta4 clr x86 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta4 coreclr x64 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta4 coreclr x86 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta5 clr x64 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta5 clr x86 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta5 coreclr x64 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta5 coreclr x86 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta6-12032 clr x86 C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta6-12032 coreclr x86 C:UsersDamian.dnxruntimes
    
    
     * 1.0.0-beta6-12082 clr x86 C:UsersDamian.dnxruntimes default
    
    
     1.0.0-beta6-12082 coreclr arm C:UsersDamian.dnxruntimes
    
    
     1.0.0-beta6-12082 coreclr x86 C:UsersDamian.dnxruntimes
    
    
    
     C:>
    
    
    
    

    创建和发布你的DNX应用程序

    让我们创建一个应用程序:

    • 使用 Visual Studio 2015 RC创建一个新的ASP.NET 5应用程序,使用空的项目模板。
    • 打开解决方案文件的global.json,并将 sdk 属性更改为在前一节中使用 dnvm 安装的MATCH ( 提示): 它被列在你的开发机器上 dnvm list的输出中。
    • 关闭并打开解决方案以允许 Visual Studio 根据你对 global.json的更改加载正确的DNX版本。
    • 打开项目文件的project.json,并将列出的依赖项的版本从" 1.0.0 -beta4"更改为" 1.0.0 -*"。 这将确保还原包的最新版本。
    • 进入解决方案文件夹的root 项目添加一个 nuget.config 文件,粘贴以下配置,其中包含了来自我们的构建服务器的最新的drops drops
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <packageSources>
     <addkey="AspNetVNext"value="https://www.myget.org/F/aspnetvnext/api/v2"/>
     <addkey="NuGet"value="https://nuget.org/api/v2/"/>
     </packageSources>
    </configuration>
    • 通过触摸并保存 project.json 文件,或者右键单击解决方案资源管理器中的项目并选择"还原软件包"来强制包恢复。 打开引用 node,并确保列出的所有软件包都来自同一个版本( 比如。 1.0.0 - 在写入时使用 beta6 - [build number]。
    • 运行应用程序( Ctrl+F5 ) 并确保在浏览器中看到"Hello World"消息。
    • 在本阶段,应用程序将在localhost上运行,但是在我们的Pi上,我们将要求它更改服务器配置。
    • 打开 project.json 文件并更改 "web" 命令以从 hosting.ini file: 获取它的参数
    "web": "Microsoft.AspNet.Hosting --config hosting.ini"
    • hosting.ini 文件在项目的root 中创建,并在以下位置粘贴以下配置值:
    server=Microsoft.AspNet.Server.WebListenerserver.urls=http://localhost:5000
    • 从工具栏上的调试/启动按钮选择 web 命令并再次运行应用程序。 这将启动一个命令窗口,其中包含一条消息,说明web服务器已经成功启动。
    • 打开浏览器并导航到 http://localhost:5000/,以确保应用程序使用带有新配置的WebListener 服务器工作。

    现在我们已经准备好一个应用程序来打包部署到 Pi。

    • 在开发计算机上打开命令提示符并导航到包含你的应用程序的文件夹。
    • 运行 dnvm list 并记下你安装的ARM DNX的版本号 ealier,比如 1.0.0 -beta6-12082
    • 运行以下命令,编译并发布应用程序以及 DNX,到你的开发机器上的一个文件夹。 确保上一步 MATCHES 中的版本是你传递给 --runtime 参数的值中的一个。 值应精确为文件夹中运行时 NAME的文件夹:
    
    dnu publish --out C:publishDnxPi --no-source --runtime dnx-coreclr-win-arm.1.0.0-beta6-12082
    
    
    
    
    • 导航到发布位置并向下俯冲到你的应用程序编译到的包文件夹中的root 文件夹,比如 C:publishDnxPiapprootpackagesDnxPi1.0.0root 这里文件夹应包含你先前创建的hosting.ini 文件。
    • 打开 hosting.ini 文件,并更改应用程序监听 MATCH的URL,所有主机名:
    
    server.urls=http://*:5000
    
    
    
    
    • 在资源管理器中将UNC共享打开,并将已经发布的应用程序复制到合适的位置,C:PROGRAMS 文件夹中的比如。 提示:鼠标右键点击物联网应用程序中的你的鼠标,快速打开UNC共享。

    打开防火墙中防火墙的端口

    你将从除圆周率之外的计算机浏览你的DNX应用程序,因此需要通过向防火墙添加规则来启用远程访问:

    • 使用管理员权限打开远程PowerShell会话,使用管理员权限,你创建的帐户。
    • 运行以下命令:
    
    netsh advfirewall firewall add rule name="DNX Web Server port" dir=in action=allow protocol=TCP localport=5000
    
    
    
    

    正在将你的DNX应用程序

    你的应用程序已经部署好了,可以运行了,让我们运行它吧 !

    • 使用管理员权限打开远程PowerShell会话,使用管理员权限,你创建的帐户。
    • 导航到 Pi。比如 C:PROGRAMSDnxPi 上的应用程序文件夹
    • 运行 web.cmd 并等待。"。"。你应该看到服务器在 5 -10秒后启动的消息
    • 打开浏览器并将它的指向你的引脚和端口 5000,比如 http://Damian-Pi2:5000/

    此时你将在浏览器中看到熟悉的"Hello World"消息。 如果你没有,我很抱歉。 在跟踪这个指南的时候,我犯了一个错误,或者环境( 也许宇宙射线) 坏了你的乐趣。 享受调试,当你找到它时,让我知道,所以我可以更新这个指南。

    如果你点击刷新几次服务器将停止响应。 现在 WebListener 服务器在ARM上运行时出现问题,我们还没有调查。

    如果我们已经尝试了 DNX/ASP.NET 5开发的Windows 10核心,所以如果你进一步地处于未知地区。 如果你在路上发现问题,请记录它们,我们将尽力检查它们。

    如果你想要一个非常小的应用程序,那么在你的Pi上运行更有趣的应用程序,请尝试这一步。

    调试?

    我们已经成功地在Pi上运行了一个应用程序,但是设置是有点麻烦的。


    Window  Windows  sam  CORE  RAS  Windows10  
    相关文章