Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

targetFrameworkのバージョンアップについて。

targetFrameworkのバージョンアップ対応

targetFrameworkのバージョンアップ対応は随時行っている。

しかし、

  • タイミングが合わない場合(リポジトリ上のバージョンアップが遅延している場合)
  • 案件保有のバージョンを、ユーザ・プログラムと合わせてバージョンアップする場合
  • 汎用認証サイトなど、複数のVisual Studioバージョンのテンプレートが提要されていない場合。

などは、以下の手順に従って、プロジェクトでtargetFrameworkのバージョンアップを行う。
(Open棟梁は、VS2005から、VS2008 -> 10 -> 12 -> 13 -> 15 -> 17とバージョンアップを継続している)

なお、ユーザープログラムも同様の手順でバージョンアップが可能だが、
サードパーティ製コンポーネントなどのサポート状態により移行作業のWBSに変化がある可能性がある。

targetFrameworkのバージョンダウン対応

なお、バージョンダウンの事例はコチラを参照。

手順

新しいVisual Studioでソリューション・ファイル(*.sln)を開く

.NET FrameworkとVisual Studioのバージョン

基本的に、

新しいversionの.NET Frameworkがリリースされるタイミングで、
新しいversionのVisual Studioもリリースされる。

  • Visual Studio 2002 : .NET 1.0
  • Visual Studio 2003 : .NET 1.1
  • Visual Studio 2005 : .NET 2.0
  • Visual Studio 2008 : .NET 3.5
  • Visual Studio 2010 : .NET 4.0
  • Visual Studio 2012 : .NET 4.5
  • Visual Studio 2013 : .NET 4.5.1
  • Visual Studio 2015 : .NET 4.6
  • Visual Studio 2017 : .NET 4.7

アップグレード・ウィザード

新しいVisual Studioで古いソリューション・ファイル(*.sln)を開くと、アップグレード・ウィザードによって、
自動的に、ソリューション・ファイルやプロジェクト・ファイルが変換(コンバージョン)されることがある。
(なお、VS2015 ---> VS2017移行時はアップグレード・ウィザードの起動を確認できず)

targetFrameworkを新しい.NET versionに変更する。

変更方法

プロジェクトのプロパティ画面を開き、targetFrameworkを新しい.NET versionに変更する。
これにより、app.config、web.config、package.configにも変更が加えられることがある。

変更されるファイル

'*.csprojファイルや、*.vbprojファイルのtargetFrameworkタグを直接書き換えることも可能だが、
上記のように、app.config、web.config、package.configに必要な変更が加えられる可能性もあるので、注意が必要。
targetFrameworkタグをGrep( & Replace)することによってtargetFrameworkの変更漏れを確認することが出来る。

web.configのtargetFrameworkを新しい.NET versionに変更する。

web.configのtargetFrameworkを新しい.NET versionに変更する。

例えば、以下のように変更する。

なお、compilationタグのtargetFramework属性は、
プロジェクトのプロパティを変更すると自動的に変更される。

net46

<compilation debug="true" targetFramework="4.6" />
<httpRuntime targetFramework="4.6" />

net47

<compilation debug="true" targetFramework="4.7" />
<httpRuntime targetFramework="4.7" />

参考

package.configのtargetFrameworkを新しい.NET versionに変更する。

package.configのtargetFrameworkを新しい.NET versionに変更する。

例えば、以下のように変更する。

net46

<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net46" />

net47

<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net47" />

必要に応じて、バージョン番号(version="x.x.x")の変更も検討する。

ビルドバッチを実行して、全てのソリューション・ファイルをビルドする。

以下のケースでは対応が必要になる。

ワーニング

  • 後方互換の打ち切りの予告のワーニングが発生することがある。
  • 移行先のAPIを使用するようにコードを変更するか、#pragma warningでワーニングを抑止する。

ビルドエラー

様々な原因でエラーとなる理由が考えられるが、

極稀に、APIが削除されたような場合は、
移行先のAPIを使用するようにコードを変更する必要がある。

ASP.NETの場合

Web.cponfigに変更が入ることがある。

これは、Visual Studioのアップグレード・ウィザードによって自動変換される。

デプロイ先が変更になることがある。

ASP.NET 2.0からASP.NET 4.0への移行では、デプロイ先のアプリケーション・プールのversionが変更になった。

その他

  • 今後のVisual Studio、.NETのリリースによって上記の手順は変更される可能性がある。
  • 今迄のバージョンアップ実績を振り返りますと、後方互換を重視していると言える。

参考

移行に関する詳細は、以下が参考になる。

マイクロソフト系技術情報 Wiki

移行・マイグレーション

https://techinfoofmicrosofttech.osscons.jp/index.php?%E7%A7%BB%E8%A1%8C%E3%83%BB%E3%83%9E%E3%82%A4%E3%82%B0%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3

.NETバージョンアップ

https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-03 (火) 10:07:21 (176d)