俺のラズパイ2で.NET Core 2.0なF#が動いたよ

俺のラズパイ2で.NET Core 2.0が動くまで | Moonmile Solutions Blog
http://www.moonmile.net/blog/archives/8732

では C# が動いたので、今度は F# で試してみましょう。
手順は、C# の時と一緒で、

  1. Raspberry Pi2/3でRasbianを用意する。
  2. PC上で、.NET Coreのプログラムを作る。
  3. PCからRaspberry Piにデプロイする(アセンブリをコピーする)

すれば ok です。コードが F# なので、デプロイするアセンブリに「FSharp.Core.dll」が含まれていれば、ああ F# で動いているね、ということになります。

F#なコンソールアプリを作る

プログラム言語を -lang で指定して、コンソールアプリを作ります。

dotnet new console -n hellofs -lang F#

できあがったコードは、こんな感じ。皆さん、見慣れた F# なコードですよね :)

// Learn more about F# at http://fsharp.org
open System
[<EntryPoint>]
let main argv =
    printfn "Hello World from F#!"
    0 // return an integer exit code

[/code]

ビルドする

ビルドは、C# と同じです。ARM 用に -r linux-arm のスイッチを付けて publish します。

dotnet build
dotnet publish -r linux-arm

転送する

ビルドができたら、WinSCP を使って publish フォルダ―を転送します。

この部分は、適当なバッチを作っておきたいところですね。

実行フラグを付ける

Tera term で Raspbian に接続して、chmod +x して実行権限を付けます。

chmod +x hellofs
./hellfs

いよいよ asp.net mvc code + F# ができるのか?

と思いきや、ビルド時にエラーがでています。

どうも Razor のコード出力あたりでエラーになっていますね。この部分、通常の ubuntu でやってもエラーになるので、普通に不具合じゃないかなと。プレビュー版だし。
確か、1.1 の時は mvc にしても linux 上(Raspberry Pi上じゃなくて、x64のUnbuntu上)
で動いたはずなので、いずれ直ると思います。

dotnet new webapi のほうは、linux-arm でも動くので、これは後で試します。次は、せっかくなので GPIO を使って .net core 2.0 + Lチカの巻へ。

 

カテゴリー: 開発, F#, RaspberryPi パーマリンク