redwarrior’s diary

C#, ASP.NET, WEB, G*などの雑多な情報

TFS 2015でプロジェクトを.NET Framework 4.6にダウングレードしてビルドする

前振り

前回の記事で.NET Framework 4.6.1を使用してビルドが出来るようになったので、次にテスト環境を用意しようと思いました。

redwarrior.hateblo.jp

いきなりTFS上からテスト環境へデプロイをするのは大変そうなので、まずはローカルマシンからデプロイをすることに。

テスト環境に.NET Framework 4.6.1は入っていないので、まずそこからインストールしようとしたところ、サポートOSにテスト環境のOSが含まれていない。テスト環境は無印のWindows Server 2008でした。

Windows Server 2008 R2ならOKなのですが、インフラ部隊によるとR2は全く別のOSなので、OS変更は出来ないと。

さらに調べるとWindows Server 2008は、.NET Framework 4.6ならば対応している。

.1の違いでサポートOSが変わるとは思いませんでしたが、そういった理由で、プロジェクトの対象フレームワーク.NET Framework 4.6に変更することになりました。

変更後のローカルマシンからのデプロイは成功し、起動も確認できましたが、ここでタイトルの話です。このプロジェクトをTFS上でビルドしようとすると以下のエラーメッセージが出てビルドに失敗します。(メッセージは改行を入れています)

 C:\Program Files (x86)\MSBuild\14.0\bin\amd64\Microsoft.Common.CurrentVersion.targets (1098): フレームワーク ".NETFramework,Version=v4.6" の参照アセンブリが見つかりませんでした。
これを解決するには、このフレームワーク バージョンの SDK または Targeting Pack をインストールするか、
SDK または Targeting Pack をインストールしているフレームワークのバージョンにアプリケーションを再ターゲットしてください。
アセンブリはグローバル アセンブリ キャッシュ (GAC) から解決され、参照アセンブリの代わりに使用されるため、
アセンブリが目的のフレームワークに正しくターゲットされない場合もあります。

.NET Framework 4.6.1は、インプレース更新されるので、そのままビルド出来るかと思いましたが、そうもいかないみたいです。

このままでは、開発環境(.NET 4.6)、TFS(.NET 4.6.1)、テスト環境(.NET 4.6)とややこしいので、TFSでも.NET 4.6でビルド出来る方法を調べました。(長い前振り終わり)

本題

今回やったことは以下の通り。1つ前の記事に比べるとずっと作業は少なかったです。

.NET Framework 4.6 のTFSへのインストール

試しにやってみましたが、既にインストールされているとか、新しいものがインストール済み等のメッセージが出て続行することが出来なかったです。まあ、これは想定通り。

.NET Framework 4.6 Targeting Pack のTFSへのインストール

.NET Framework 4.6にDeveloper Packは無かったので、.NET Framework 4.6 Targeting Packをインストールしました。

Download Windows Vista SP2、Windows 7 SP1、Windows 8、Windows 8.1、Windows Server 2008 SP2、Windows Server 2008 R2 SP1、Windows Server 2012、Windows Server 2012 R2、および Windows 10 用 Microsoft .NET Framework 4.6 Targeting Pack および言語パック from Official Microsoft Download Center

以上。

つまり、Targeting Packのインストールだけでした。思ったより、あっさりとビルド出来るようになったので良かったです。

その他

多分、.NET Framework 4.5.2のプロジェクトをビルドするときも、.NET Framework 4.5.2 Developer Packをインストールすれば上手く行きそうな気がします。必要ないのでしませんが。

再びビルド出来るようになったので、次は自動デプロイを試してみたいです。