「[[マイクロソフト系技術情報 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 **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]]