「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>.NET Core]]

* 目次 [#s808ee45]
#contents

*概要 [#b81a45da]
[[.NET Core]]のコンソールアプリの発行とデプロイ

*前提 [#i3dfdae9]
**Linux における .NET Core の前提条件 [#q71d96f4]
https://docs.microsoft.com/ja-jp/dotnet/core/linux-prerequisites?tabs=netcore2x

>インストールが必要な依存ライブラリは Linux ディストリビューションごとに異なっている。

**[[.NET Core]] ネイティブ インストーラー [#z953008f]
-[[SCD>#w88a1ee1]]以外の方式([[FDD>#yfb796bd]] or Linux上でビルド)で、Linux 環境で [[.NET Core]] アプリケーションを~
実行する場合、[[.NET Core]] が依存するライブラリを事前にインストールする必要がある。

-各ディストリビューション用の [[.NET Core]] ネイティブ インストーラーにより、~
[[Linux における .NET Core の前提条件>#q71d96f4]]ライブラリがすべてインストールされる。

*方式 [#o6acb6b5]
どうも、[[FDD>#yfb796bd]]が推奨の方式らしい。~
[[SCD>#w88a1ee1]]では、バージョン不一致の問題が発生し易いもよう。

**FDD [#yfb796bd]
-FDD : Framework-dependent deployment

-フレームワークに依存する展開

--.NET Frameworkでの配置と同様の仕組み。

--展開先(アプリケーションが動作するOS)に、~
[[.NET Core]]のランタイムがインストールされていることを前提としている仕組み。

***メリット [#l14682b9]
以下が挙げられる。

-[[.NET Core]]ランタイムは共通であるため、実行や配置が容易になる。

--ディストリビューション毎に [[.NET Core]] の依存関係を考慮する必要が無い。
--パッケージ作成時にターゲット プラットフォーム (OS、アーキテクチャ) を考慮する必要が無い。
--バージョン不一致の問題が発生し難いもよう。

-ランタイム・フリーであるため、ビルド出力が、
--軽量になる。
--OSによらず同一になる。

***デメリット [#ucfd4cf3]
以下の2点が挙げられる。

-事前に、展開先に、[[.NET Core]]ランタイムのインストールが必要になる。

-[[.NET Core]]ランタイム側のバージョンアップでまれではあるが~
開発-実行環境間でアプリの動作に変更が生じる可能性があること。

**SCD [#w88a1ee1]
-SCD : Self-contained deployment

-自己完結型の展開

--配置するバイナリのみで実行可能な形式(ランタイムも同時に配置する)

***メリット [#s811716a]
以下の2点が挙げられる。

-開発時にランタイムのインストールが不要。
-利用するランタイムを完全に固定できる。

***デメリット [#n7e8eb74]
以下の点が挙げられる。

-[[.NET Core]]ランタイムは個別であるため、実行や配置が複雑になる。
--OSごとにビルドを行ってバイナリを生成しないといけない。
--パッケージ作成時にターゲット プラットフォーム (OS、アーキテクチャ) の選択が必要。
--バージョン不一致の問題が発生し易いもよう。

-バイナリにランタイムが含まれるので
--配置するバイナリのサイズが大きくなり、
--配置先のマシンで占めるディスク容量が増える。

*検証 [#w4375a40]
**[[こちら>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?.NET%20Core%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]] [#fbabb769]

**結果 [#rd0719f0]
FDDもSCDも大方動作したが、やはり、FDDの方が楽。

*参考 [#q5cc4c84]
-.NET Coreでコンソールアプリを配置する - Build Insider~
https://www.buildinsider.net/language/dotnetcore/04

**[[ASP.NET Coreのデプロイ]] [#s08597cc]

**.NET 開発基盤部会 Wiki [#j98be859]
***[[.NET Coreのインストールとデプロイ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?.NET%20Core%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]] [#rd7a28a4]
-CentOS
-Ubuntu

***[[ASP.NET Coreのインストールとデプロイ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?ASP.NET%20Core%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]] [#u7b1dd57]
-CentOS
-Ubuntu

**Microsoft Docs [#h306c468]

-Linux における .NET Core の前提条件~
https://docs.microsoft.com/ja-jp/dotnet/core/linux-prerequisites?tabs=netcore2x
--.NET Core for Ubuntu 14.04、Ubuntu 16.04、Ubuntu 16.10 および Linux Mint 17、Linux Mint 18 (64 ビット)~
https://docs.microsoft.com/ja-jp/dotnet/core/linux-prerequisites?tabs=netcore2x#install-net-core-for-ubuntu-1404-ubuntu-1604-ubuntu-1610--linux-mint-17-linux-mint-18-64-bit
--CentOS 7.1 (64 bit) および Oracle Linux 7.1 (64 bit) 用の .NET Core をインストールする~
https://docs.microsoft.com/ja-jp/dotnet/core/linux-prerequisites?tabs=netcore2x#install-net-core-for-centos-71-64-bit--oracle-linux-71-64-bit

-.NET Core コマンドライン インターフェイス (CLI) ツール~
https://docs.microsoft.com/ja-jp/dotnet/core/tools/?tabs=netcore2x

-.NET Core アプリケーションの展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/

以下の「サードパーティの依存関係を含む。含まない。」は、~
NuGetする・しない程度の違いしかないので、手順は複雑化しない。

***FDD [#v6fe5c25]

-コマンド ライン インターフェイス (CLI) ツールを使用して .NET Core アプリを展開する~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli
--フレームワークに依存する展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli#framework-dependent-deployment
--サードパーティの依存関係を含む、フレームワークに依存する展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli#framework-dependent-deployment-with-third-party-dependencies

-Visual Studio で .NET Core アプリを展開する~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs
--フレームワークに依存する展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs#framework-dependent-deployment
--サードパーティの依存関係を含む、フレームワークに依存する展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs#framework-dependent-deployment-with-third-party-dependencies

***SCD [#ie53c21a]
-コマンド ライン インターフェイス (CLI) ツールを使用して .NET Core アプリを展開する~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli
--サードパーティの依存関係を含まない、自己完結型の展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli#simpleSelf
--サードパーティの依存関係を含む、自己完結型の展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-cli#self-contained-deployment-with-third-party-dependencies

-Visual Studio で .NET Core アプリを展開する~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs
--サードパーティの依存関係を含まない、自己完結型の展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs#simpleSelf
--サードパーティの依存関係を含む、自己完結型の展開~
https://docs.microsoft.com/ja-jp/dotnet/core/deploying/deploy-with-vs#self-contained-deployment-with-third-party-dependencies

-.NET Core のランタイム識別子 (RID) のカタログ~
https://docs.microsoft.com/ja-jp/dotnet/core/rid-catalog

**osscons.jp [#c2c77af8]

***[[ASP.NET Coreのデプロイ]] [#s08597cc]

***.NET 開発基盤部会 Wiki [#j98be859]
-[[.NET Coreのインストールとデプロイ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?.NET%20Core%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]]
--CentOS
--Ubuntu

-[[ASP.NET Coreのインストールとデプロイ>https://dotnetdevelopmentinfrastructure.osscons.jp/index.php?ASP.NET%20Core%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A8%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4]]
--CentOS
--Ubuntu

----
Tags: [[:.NET開発]], [[:.NET Core]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS