「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>バージョンアップ対応]] * 目次 [#j4b6742f] #contents *概要 [#yd285f77] **バージョンアップ対応 [#r408d0ed] バージョンアップ対応は随時行っていますが、 -タイミングが合わない場合(リポジトリ上のバージョンアップが遅延している場合) -案件保有のバージョンを、ユーザ・プログラムと合わせてバージョンアップする場合 -[[汎用認証サイト>汎用認証サイト(Multi-purpose Authentication Site)]]など、複数のVisual Studioバージョンのテンプレートが提要されていない場合。 などは、以下の手順に従って、プロジェクトでTargetFrameworkのバージョンアップを行って下さい。~ (Open棟梁は、VS2005から、VS2008 -> 10 -> 12 -> 13 -> 15とバージョンアップを継続しています) なお、ユーザープログラムも同様の手順でバージョンアップが可能ですが、~ サードパーティ製コンポーネントなどのサポート状態により移行作業のWBSに変化があります。 **バージョンダウン対応 [#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 -Visual Studio 2015 : .NET 4.6 -Visual Studio 2017 : .NET 4.7 ***アップグレード・ウィザード [#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] 移行に関する詳細はこちらをご参照下さい。 **マイクロソフト系技術情報 Wiki [#sf84ec8a] -移行・マイグレーション~ 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