PG日誌

受託系 PG が C# の事を書いています

VisualStudio2013へ.NET Framework4.6.1を導入する

ちょっと前に、VisualStudio2013へ.NET4.6の導入の仕方を書いたけど.NET4.6.1も同じような手順で導入できます。

4.6.2の導入の仕方

takachan.hatenablog.com

背景的なもの

4.6の登場が2015年7月で4.6.1の登場が2015年12月となっています。ものすごい早いペースで更新されているのですが開発中にこういうアナウンスが何回もされてハイそうですかってターゲット変えることができる組織ってあるんですかね?

4.5系にであった、「もう次のバージョン出したからサポート期間今から1年な。いやなら切り替えろ」

のようなことが平然と起きますが、MS的には.NET4.6は今のところ

.NET Framework 4.6:
.NET 4.6 のサポートは、親のオペレーティング システムのサポート ライフサイクル ポリシーに従います。これは、Windows Vista SP2、Windows 7 SP1、Windows Server 2008 SP2、Windows Server 2008 R2 SP1、Windows 8.1 Update、Windows Server 2012、Windows Server 2012 R2、および Windows 10 の最新の必要なオペレーティング システム更新プログラム上の Windows コンポーネントとしてサポートされます。

と言ってます。

が、まぁ古い方からサポートが切れるパターンがいつか必ず来るのでMSさんの言い分はほどほどに、VisualStudio2013で.NET4.6.1が使用できるように環境を作りたいと思います。

現在の状態の確認

VSを立ち上げてプロジェクト作成画面で選択可能な.NETのバージョンを確認します。

f:id:Takachan:20160315111208p:plain

前回導入した4.6までしか表示されていません。

MSのサイトから開発者キットをダウンロード

.NET Framework 4.6.1 Developer Pack
リンク切れの場合「.NET Framework 4.6 Targeting Packk」で検索お願いします。

何故か、
4.5.2は「Developer Pack」

だったのに、
4.6では「Targeting Pack」

4.6.1では再び
「Developer Pack」に名前が揺れまくってます。

そのせいか、検索しても日本語じゃなかなか出てきません。意地悪すぎでます。

まずはサイトから2つexeをダウンロードし実行します。
安全のためインストーラを起動する前にVisualStudioは閉じておきましょう。

以下ファイルを、両方とも選択します。

f:id:Takachan:20160315111230p:plain:h300

ダウンロードしたら、最初に、「NDP461-DevPack-KB3105179-ENU.exe」、次に「NDP461-DevPack-KB3105179-JPN.exe」の順にインストールします。

VisualStudioの再起動

VSが起動したらプロジェクト作成画面を確認します。

f:id:Takachan:20160315113849p:plain

.NET4.6.1が特に追加され利用可能になっています。

最後に

WPFでMahAppsをダウンロードしたのですが、最新のブランチはVisualStudio2015用になっていました。

ただ、VisualStudio2015でしかサポートされない構文も結構あるんですよね...

例えば

自動実装プロパティ初期化構文やプロパティへのラムダ代入

public class Sample
{
    // インラインで初期化
    public string Name { get; set; } = "Taro";
    
    // getterをラムダ式で記述、getいらない、setは無視
    public string ID => "Default"
}

とか

Null条件演算子の追加機能

例えばこんな風に書けます

string? Name="";

// 変数名の後ろに?がついてる
Name?.ToString();

とか

string.Fomratの簡略化

>|cs|

string.Format("{0}", this.Name);

// が

$"Name = {Name}";

//と表現できる

等々結構変わってるんですよね。。。

これらの構文はVisualStudio2013だとコンパイルエラーになります。

参考
C# 6.0の新機能
C# 6.0で知っておくべき12の新機能

いやぁ、、、VisualStudioとc#は本当によくできてると思いますが、さすがにお布施代と客への説明(パワポ)がツライです。

今思うと、VisualStudio2012が完璧に地雷と化してますね。
(余談ですが、自分は(相当保守的に考えた場合)VSのアタリは2008 -> 2013 -> 2017だと思っています。)