- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-戻る
--[[.NET Core]]
--[[移行・マイグレーション]]
---[[.NETのクロスプラットフォーム対応]]
* 目次 [#w8de9357]
#contents
*概要 [#c8871a27]
※ 対象は、[[.NET Core]] 2.0。
-下記の「[[移行元 / 移行先>#c59bc8d4]]」の、「[[.NET Core]]」移行ノウハウをサマリする。~
-下記の「[[移行元 / 移行先>.NETのクロスプラットフォーム対応#c59bc8d4]]」の、「[[.NET Core]]」移行ノウハウをサマリする。~
-「[[.NET Standardへの移行]]」とホボ≒だった。
*詳細 [#vec241f1]
**準備 [#tccb788c]
***[[移行先>#e3670d04]]プロジェクトを準備する。 [#v07a7223]
***[[移行先>.NETのクロスプラットフォーム対応#e3670d04]]プロジェクトを準備する。 [#v07a7223]
-不要なファイルを削除する。
--*.config
--Properties\AssemblyInfo.cs
-必要なファイルを追加する。
--appsettings.json~
app.configのappSettings SectionをJSON化
***Projectファイルを準備する。 [#z6aee5a4]
-以下のようなProjectファイルを準備する。~
(既存のProjectファイルの中身を以下で置き換えればイイ)
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>
-[[.NET Core]]では、配下のSourceファイルが自動で追加される。~
必要に応じて、ファイルやフォルダの除外設定を行う。~
※ netstandardやnetcoreでは、除外されるファイルやフォルダだけがProjectファイルに明記される。
***ProjectをVisual Studioから開く。 [#l71561fb]
Projectファイルをダブルクリックするか、空のソリューションに追加する。
***Projectの初期設定を行う。 [#b3d0e458]
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>XXXX</AssemblyName>
<RootNamespace>YYYY</RootNamespace>
</PropertyGroup>
**[[ポーティング移行>移行・マイグレーション#ue626a7c]] [#a2ad89b7]
***移行対象ファイルを選別する。 [#s3edb221]
-コンパイル・エラーをチェックしながら移行対象ファイルを選別する。
-[[必要に応じて、NuGetパッケージを追加する。>#jbf468f8]]
-依存していた処理を削除するか[[ポーティング移行>#k31bea09]]する。
--Windows
--net11 - net47 - netXX
--Microsoft.VisualBasic
--上記以外のNuGetパッケージ
***必要に応じて、NuGetパッケージを追加する。 [#jbf468f8]
-「参照無し」が発生したら、NuGetパッケージを確認しインストール。~
NuGetパッケージにnetcoreが含まれるかどうかを確認する。~
([[パッケージを解凍して、中を直接確認>NuGetパッケージの開発と公開#p66307ac]]してもイイ)
-これは、「[[.NET Standard>.NET Standardへの移行#b63d5929]]」とホボ≒だった。
***必要に応じて、[[ポーティング移行>移行・マイグレーション#ue626a7c]]する。 [#l96c8e8b]
以下は、下記の「[[移行元 / 移行先>#c59bc8d4]]」でポーティング移行した処理。
以下は、下記の「[[移行元 / 移行先>.NETのクロスプラットフォーム対応#c59bc8d4]]」でポーティング移行した処理。
-あとでBat_SampleをDiff分析してまとめる。
*パッケージ・マネージャ [#fe286a36]
**[[NuGet>.NET Standardへの移行#f51240e8]] [#c240eceb]
*参考 [#e8a4213a]
-.NET Framework から .NET Core への移植 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/dotnet/core/porting/
-.NET Coreへの移植 | ++C++; // 未確認飛行 C ブログ~
http://ufcpp.net/blog/2016/2/porting-to-net-core/
**移行元 / 移行先 [#c59bc8d4]
***移行元 [#n17481e6]
-試行~
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-20/root/programs/C%23/Frameworks/Infrastructure
-実施~
https://github.com/OpenTouryoProject/OpenTouryo/tree/02-20
***移行先 [#e3670d04]
-試行~
https://github.com/OpenTouryoProject/SampleProgram/tree/netstandard/PrototypeModel/NETStandard
-実施~
https://github.com/OpenTouryoProject/OpenTouryo/tree/netstandard
**MSDN magazine [#p0ca5adb]
-方法や場所を選ばない .NET アプリの作成~
https://msdn.microsoft.com/ja-jp/magazine/mt842494
-Roslyn と .NET Core によるクロスプラットフォーム コードの生成~
https://msdn.microsoft.com/ja-jp/magazine/mt808499
**移行情報 [#p6d53d28]
***[[.NET Standardへの移行]] [#c97b888a]
***[[ASP.NET Coreへの移行]] [#ob21c056]
**.NET API Browser [#j6b71fa5]
https://docs.microsoft.com/en-us/dotnet/api/index
***.NET Core API Reference [#j377c636]
https://docs.microsoft.com/en-us/dotnet/api/index?view=netcore-2.0
----
Tags: [[:.NET開発]], [[:.NET Core]], [[:移行]]