TFS 2015でプロジェクトを.NET Framework 4.6にダウングレードしてビルドする
前振り
前回の記事で.NET Framework 4.6.1を使用してビルドが出来るようになったので、次にテスト環境を用意しようと思いました。
いきなり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をインストールしました。
以上。
つまり、Targeting Packのインストールだけでした。思ったより、あっさりとビルド出来るようになったので良かったです。
その他
多分、.NET Framework 4.5.2のプロジェクトをビルドするときも、.NET Framework 4.5.2 Developer Packをインストールすれば上手く行きそうな気がします。必要ないのでしませんが。
再びビルド出来るようになったので、次は自動デプロイを試してみたいです。