「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>バージョンアップ対応]] * 目次 [#j4b6742f] #contents *概要 [#yd285f77] Open棟梁自体のバージョンのアップの方法~ (targetFrameworkのバージョンアップについて。) **targetFrameworkのバージョンアップ対応 [#r408d0ed] targetFrameworkのバージョンアップ対応は随時行っている。 しかし、 -タイミングが合わない場合(リポジトリ上のバージョンアップが遅延している場合) -案件保有のバージョンを、ユーザ・プログラムと合わせてバージョンアップする場合 -[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]など、複数のVisual Studioバージョンのテンプレートが提要されていない場合。 などは、以下の手順に従って、プロジェクトでtargetFrameworkのバージョンアップを行う。~ (Open棟梁は、VS2005から、VS2008 -> 10 -> 12 -> 13 -> 15 -> 17とバージョンアップを継続している) なお、ユーザープログラムも同様の手順でバージョンアップが可能だが、~ サードパーティ製コンポーネントなどのサポート状態により移行作業手順に変化がある可能性がある。 **targetFrameworkのバージョンダウン対応 [#t3570843] なお、バージョンダウンの事例は[[コチラ>net452の追加サポートの件]]を参照。 *手順 [#s81eeae9] **新しいVisual Studioでソリューション・ファイル(*.sln)を開く [#ucf893fa] ***.NET FrameworkとVisual Studioのバージョン [#a70cef25] 基本的に、 新しい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 → 4.5.2 -Visual Studio 2015 : .NET 4.6 → 4.6.1 → 4.6.2 -Visual Studio 2017 : .NET 4.7 → 4.7.1 → 4.7.2 -Visual Studio 2019 : .NET 4.8 ***アップグレード・ウィザード [#za8d35e4] 新しいVisual Studioで古いソリューション・ファイル(*.sln)を開くと、アップグレード・ウィザードによって、~ 自動的に、ソリューション・ファイルやプロジェクト・ファイルが変換(コンバージョン)されることがある。~ (なお、VS2015 ---> VS2017移行時はアップグレード・ウィザードの起動を確認できず) **targetFrameworkを新しい.NET versionに変更する。 [#q5e85ac1] ***変更方法 [#z7b16093] プロジェクトのプロパティ画面を開き、targetFrameworkを新しい.NET versionに変更する。~ これにより、app.config、web.config、package.configにも変更が加えられることがある。 -方法: .NET Framework のバージョンをターゲットにする~ https://msdn.microsoft.com/ja-jp/library/bb398202.aspx ***変更されるファイル [#se3beebd] '*.csprojファイルや、*.vbprojファイルのtargetFrameworkタグを直接書き換えることも可能だが、~ 上記のように、app.config、web.config、package.configに必要な変更が加えられる可能性もあるので、注意が必要。~ targetFrameworkタグをGrep( & Replace)することによってtargetFrameworkの変更漏れを確認することが出来る。 **web.configのtargetFrameworkを新しい.NET versionに変更する。 [#r4ed4e82] web.configのtargetFrameworkを新しい.NET versionに変更する。 例えば、以下のように変更する。 なお、compilationタグのtargetFramework属性は、~ プロジェクトのプロパティを変更すると自動的に変更される。 ***net46 [#c32e7476] <compilation debug="true" targetFramework="4.6" /> <httpRuntime targetFramework="4.6" /> ***net47 [#h2656923] <compilation debug="true" targetFramework="4.7" /> <httpRuntime targetFramework="4.7" /> ***参考 [#b1c829f7] -asp.net - What do the TargetFramework settings mean in web.config in ASP .NET MVC? - Stack Overflow~ https://stackoverflow.com/questions/40170567/what-do-the-targetframework-settings-mean-in-web-config-in-asp-net-mvc **package.configのtargetFrameworkを新しい.NET versionに変更する。 [#uf85f972] package.configのtargetFrameworkを新しい.NET versionに変更する。 例えば、以下のように変更する。 ***net46 [#l5c97c1e] <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net46" /> ***net47 [#f0974365] <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net47" /> 必要に応じて、バージョン番号(version="x.x.x")の変更も検討する。 **ビルドバッチを実行して、全てのソリューション・ファイルをビルドする。 [#sb1bfb0e] 以下のケースでは対応が必要になる。 ***ワーニング [#ycbb739e] -後方互換の打ち切りの予告のワーニングが発生することがある。 -移行先のAPIを使用するようにコードを変更するか、#pragma warningでワーニングを抑止する。 ***ビルドエラー [#z3eb6917] 様々な原因でエラーとなる理由が考えられるが、~ 極稀に、APIが削除されたような場合は、~ 移行先のAPIを使用するようにコードを変更する必要がある。 **ASP.NETの場合 [#qac45c2f] ***Web.cponfigに変更が入ることがある。 [#pf547b54] これは、Visual Studioのアップグレード・ウィザードによって自動変換される。 ***デプロイ先が変更になることがある。 [#z50a4ca4] ASP.NET 2.0からASP.NET 4.0への移行では、デプロイ先のアプリケーション・プールのversionが変更になった。 **その他 [#bccdf62a] -今後のVisual Studio、.NETのリリースによって上記の手順は変更される可能性がある。 -今迄のバージョンアップ実績を振り返りますと、後方互換を重視していると言える。 *参考 [#id857d30] 移行に関する詳細は、以下が参考になる。 **[[NuGetパッケージの作成手順]] [#rad1b467] **[[Open棟梁のバージョン番号付与ポリシー]] [#zc0ed95c] **マイクロソフト系技術情報 Wiki [#sf84ec8a] ***移行・マイグレーション [#k3b089b4] 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バージョンアップ [#w9aaeb2f] 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