2019/05/08(水).NET 5 = .NET Core vNext
.NET Core 3.0の時期バージョンが.NET 5。
4は.NET Framework 4系と紛らわしいのでスキップした、と言うことですが1~3も被っていたわけで、ようは.NET CoreからCoreが取れた、今後.NETと言えば.NET Coreになっていく、と言うことがはっきり示された形。
現在.NET Core未対応のWCF、WebFormあたりが切り捨てられるのか、ちょっとした騒ぎに。
廃止する、と発表されても現場の反応から廃止中止になったこともあるのでまた方針変わるかも知れませんが、新規プロジェクトを作成する時はできるだけ.NET Coreにしておいた方がよさそう。
.NET 5はMonoとくっつくので大規模なコード変更が予想され落ち着くまではしばらくかかりそうなので、当分.NET Core3の大きな変更は無く安心して使えそうな予感(個人の感想です)。
※2019/06/16追記
WCFもオープンソースとしてコミュニティによって.NET Coreに移植されるようです。
これでCore対応されずに残るのはWebFormだけでしょうか?
2018/09/22(土)ML.NET 0.5でディープラーニング
C#でTensorFlowを使ったディープラーニングが可能になってました。
サンプル(TensorFlowのサンプルは samples / csharp / examples / DeepLearning_TensorFlowMLNETInceptionv3ModelScoring / )が公開されているのでダウンロードし試してみようとしたら、NU1102エラーが出てNugetで失敗します。
未公開のML.NET 0.6.0-preview-26912-3が参照されているので、パッケージマネージャで
PM> Install-Package Microsoft.ML -Version 0.6.0-preview-26912-3しても404エラー。
プロジェクトファイルを直接編集して0.6.0-preview-26912-3を0.5.0に変えるとNugetは成功しますが、ビルドで下記のエラー。
'TensorFlowScorer' に 'OutputColumns' の定義がありません定義にとんでいくとOutputColumnはあるけれどOutputColumnsはありません。
//OutputColumns = new[] { InceptionSettings.outputTensorName } //↓ OutputColumn = InceptionSettings.outputTensorNameに変更してビルドしたら大量のエラー。
メゲメゲ(^^;)。
0.6.0-preview-26912-3を取得する方法が判明。英語ですがもろそのもの。
nugetじゃなくてmygetしろと。nugetツールにパッケージソースを追加する方法で無事0.6.0-preview-26912-3を取得できました。
ところが実行すると全く同じエラー。
仕方なくメッセージを読むとtensorflow.dllもしくはその依存関係が見つかっていない。
dllがちゃんとあるかどうか確認しようとしたら、プロジェクト内にnuget関連のdllが一つもなし。
調べたらユーザーフォルダにマイドキュメント等と並んで.nugetフォルダが存在しその中にありました。
プロジェクトをいじったり別のパッケージを入れようとしたり穢れている気がしたのでnugetのキャッシュのクリアを試しました。
改めてダウンロードしたプロジェクトを解凍するところから始めましたが、結局同じエラー。
何か手順がもれているのか、環境(Win7 64bit)のせいなのか。
まあ時間が解決してくれると思うので待ちます。