おひさしぶりです。気付けば、1か月更新してませんでした。
今日は、de:codeに向けて「.NET Core」を「予習」「味見」したい人に向けて、私なりにVisualStudioで、利用可能になる方法を紹介します。
大まかにこんな感じ
0.事前準備.VisualStudio 2015 Pro程度ものが入った環境を用意する(たぶんcommunityでもいけるとは思う)
1.NuGetのリポジトリを追加します。
2.プロジェクトを用意します。
3.project.jsonを書き換えます
4.随時動かす!
NuGetのリポジトリを追加
- 開発のビルドリソース – dotnet-core .NET Core “dev” builds
- リリース向けのリソース – dotnet-core-rel Feed for the dotnet-core packages that we plan to release and publish to nuget.org
名前は適当に、ソースのURLは、上記リンク先から下記の部分を利用します
※VS2015は上。
プロジェクトを用意します
新しいプロジェクトの作成ですね。
何かかきます。とりあえずコンソールなので、、、
グレイトなメッセージを出力!テンションあがるねっ
project.jsonを書き換え
dnxのみにして、しまいます。こうすると.NETFrameworkでは動作しなくなる。
Devはちょっと修羅なので、リリース候補のrc2にしてみました。
保存で、パッケージが復元されます。あとは、実行!
これこそグレートなメッセージ!!!・・・化けたよ。
こんなときは、慌てずに中身を覗いてみましょう。
Console.WriteLine(Console.Out.Encoding.WebName);
というわけで、エンコードがutf-8となっているために、コンソールはShiftjis。
なので化けたのだということですね。
そこでproject.jsonに以下を追加
"System.Text.Encoding.CodePages": "4.0.1-beta-23516"
さらに、メインも以下のように
public static void Main(string[] args) { Console.WriteLine(Console.Out.Encoding.WebName); // 標準出力の取得 var s = Console.OpenStandardOutput(); // コードページの取得 var e = System.Text.CodePagesEncodingProvider.Instance.GetEncoding(932); // エンコード付きのストリーム var w = new System.IO.StreamWriter(s, e); // これを忘れると・・・すぐに出力されなくなる w.AutoFlush = true; // 設定 Console.SetOut(w); Console.WriteLine(Console.Out.Encoding.WebName); Console.WriteLine("てすとめっせーじ"); Console.Read(); }
実行!
となりました!
とはいえ、この問題は公式なNuGetから落とせるものでも発生しますので、特別RC2がというわけではありません。
試行錯誤しながら、メンバーを眺めてみたりとすることもできるということで
興味のあるかたはぜひぜひ
それでは!