「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -戻る --[[.NET Standard]] --[[移行・マイグレーション]] ---[[.NETのクロスプラットフォーム対応]] * 目次 [#o5a016dc] #contents *概要 [#r7faebbc] 下記の「[[移行元 / 移行先>#c59bc8d4]]」の、「[[.NET Standard]]」移行ノウハウをサマリする。~ *詳細 [#u9084419] **準備 [#k7f8bf18] ***[[移行先>#e3670d04]]プロジェクトを準備する。 [#o36ad6ee] 不要なファイルを削除する(SourceファイルとProjectファイルのみ残す)。 -packages.config -Properties\AssemblyInfo.cs ***Projectファイルを準備する。 [#e8f374c4] -以下のようなProjectファイルを準備する。~ (既存のProjectファイルの中身を以下で置き換えればイイ) <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> </Project> -.NET Standardでは、配下のSourceファイルが自動で追加される。~ 必要に応じて、ファイルやフォルダの除外設定を行う。~ ※ 除外されるファイルやフォルダだけがProjectファイルに明記される。 ***ProjectをVisual Studioから開く。 [#w8f1924b] Projectファイルをダブルクリックするか、空のソリューションに追加する。 ***Projectの初期設定を行う。 [#tb3a8fcc] <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> <AssemblyName>OpenTouryoStd.Public</AssemblyName> <RootNamespace>Touryo.Infrastructure.Public</RootNamespace> </PropertyGroup> **[[ポーティング移行>移行・マイグレーション#ue626a7c]] [#d3087e43] ***移行対象ファイルを選別する。 [#j19db7af] -コンパイル・エラーをチェックしながら移行対象ファイルを選別する。 -[[必要に応じて、NuGetパッケージを追加する。>#b63d5929]] -依存していた処理を削除するか[[ポーティング移行>#k31bea09]]する。 --Windows --net11-net47 --VisualBasic --上記以外のNuGetパッケージ ***必要に応じて、NuGetパッケージを追加する。 [#b63d5929] -参照が無くが発生したら、NuGetパッケージを確認しインストール。~ これにより、NuGetパッケージにnetstandardが含まれるかどうか確認できる。 -以下のようなライブラリを探す。 --System系 ---System.Configuration.ConfigurationManager --System.Data系~ [[ADO.NETデータプロバイダ]] ---System.Data.SqlClient ---System.Data.Odbc ---Npgsql ---MySql.Data --[[ASP.NET Core>#odebd8c3]]系~ ※ ココが比較的、大変。 ---[[System.Web>#i5893ae7]] ---[[Microsoft.Owin>#gce2c3f9]] --その他 ---log4net ---Json.NET -以下は、下記の「[[移行元 / 移行先>#c59bc8d4]]」で追加したNuGetパッケージ。 --Public <PackageReference Include="log4net" Version="2.0.8" /> <PackageReference Include="Newtonsoft.Json" Version="11.0.2" /> <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.1" /> <PackageReference Include="System.Data.Odbc" Version="4.5.0-preview1-26216-02" /> <PackageReference Include="System.Data.SqlClient" Version="4.4.3" /> ---DamPstGrS <PackageReference Include="Npgsql" Version="3.2.7" /> ---DamMySQL <PackageReference Include="MySql.Data" Version="6.10.6" /> --Framework <PackageReference Include="Microsoft.AspNetCore.Http" Version="2.0.2" /> <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.0.2" /> <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.0.2" /> <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.0.2" /> <PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" /> --Business~ - ***必要に応じて、[[ポーティング移行>移行・マイグレーション#ue626a7c]]する。 [#k31bea09] 以下は、下記の「[[移行元 / 移行先>#c59bc8d4]]」でポーティング移行した処理。 -Public~ あとでDiff分析してまとめる。 -Framework~ あとでDiff分析してまとめる。 -Business~ あとでDiff分析してまとめる。 *サマリ [#o043b2e7] 既存ライブラリは、以下のような方針で移行できると考える(あくまで一例)。 -OpenTouryoProject/OpenTouryo > Issue #235~ > Migrate to .NET Standard. > Result of verification~ https://github.com/OpenTouryoProject/OpenTouryo/issues/235#issuecomment-377419287 *参考 [#p59f57c7] **移行元 / 移行先 [#c59bc8d4] ***移行元 [#n17481e6] https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/C%23/Frameworks/Infrastructure ***移行先 [#e3670d04] https://github.com/OpenTouryoProject/SampleProgram/tree/netstandard/PrototypeModel/NETStandard **[[ASP.NET Core]] [#odebd8c3] -対応するライブラリが「Microsoft.AspNetCore.XXXX」にある可能性がある。 -これらのライブラリは[[ASP.NET Core]]ではなく、[[.NET Standard]]前提になる。~ https://www.nuget.org/packages/Microsoft.AspNetCore.All ***[[System.Web>ASP.NET Coreへの移行#i5893ae7]] [#i5893ae7] ***[[Microsoft.Owin>ASP.NET Coreへの移行#gce2c3f9]] [#gce2c3f9] **移行情報 [#p6d53d28] ***[[.NET Coreへの移行]] [#xd12992f] ***[[ASP.NET Coreへの移行]] [#ob21c056] **.NET API Browser [#j6b71fa5] https://docs.microsoft.com/en-us/dotnet/api/index ***.NET Standard API Reference [#j377c636] https://docs.microsoft.com/en-us/dotnet/api/index?view=netstandard-2.0 ---- Tags: [[:.NET開発]], [[:.NET Core]], [[:.NET Standard]], [[:移行]]