マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

.NET Coreのコンソールアプリの発行とデプロイ

前提

Linux における .NET Core の前提条件

https://docs.microsoft.com/ja-jp/dotnet/core/linux-prerequisites?tabs=netcore2x

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

.NET Core ネイティブ インストーラー

  • SCD以外の方式(FDD or Linux上でビルド)で、Linux 環境で .NET Core アプリケーションを
    実行する場合、.NET Core が依存するライブラリを事前にインストールする必要がある。

方式

どうも、FDDが推奨の方式らしい。
SCDでは、バージョン不一致の問題が発生し易いもよう。

FDD

  • FDD : Framework-dependent deployment
  • フレームワークに依存する展開
  • .NET Frameworkでの配置と同様の仕組み。
  • 展開先(アプリケーションが動作するOS)に、
    .NET Coreのランタイムがインストールされていることを前提としている仕組み。

メリット

以下が挙げられる。

  • .NET Coreランタイムは共通であるため、実行や配置が容易になる。
  • ディストリビューション毎に .NET Core の依存関係を考慮する必要が無い。
  • パッケージ作成時にターゲット プラットフォーム (OS、アーキテクチャ) を考慮する必要が無い。
  • バージョン不一致の問題が発生し難いもよう。
  • ランタイム・フリーであるため、ビルド出力が、
    • 軽量になる。
    • OSによらず同一になる。

デメリット

以下の2点が挙げられる。

  • 事前に、展開先に、.NET Coreランタイムのインストールが必要になる。
  • .NET Coreランタイム側のバージョンアップでまれではあるが
    開発-実行環境間でアプリの動作に変更が生じる可能性があること。

SCD

  • SCD : Self-contained deployment
  • 自己完結型の展開
  • 配置するバイナリのみで実行可能な形式(ランタイムも同時に配置する)

メリット

以下の2点が挙げられる。

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

デメリット

以下の点が挙げられる。

  • .NET Coreランタイムは個別であるため、実行や配置が複雑になる。
    • OSごとにビルドを行ってバイナリを生成しないといけない。
    • パッケージ作成時にターゲット プラットフォーム (OS、アーキテクチャ) の選択が必要。
    • バージョン不一致の問題が発生し易いもよう。
  • バイナリにランタイムが含まれるので
    • 配置するバイナリのサイズが大きくなり、
    • 配置先のマシンで占めるディスク容量が増える。

検証

こちら

結果

FDDもSCDも大方動作したが、やはり、FDDの方が楽。

参考

ASP.NET Coreのデプロイ

.NET 開発基盤部会 Wiki

.NET Coreのインストールとデプロイ

  • CentOS
  • Ubuntu

ASP.NET Coreのインストールとデプロイ

  • CentOS
  • Ubuntu

Microsoft Docs

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

FDD

SCD


Tags: :.NET開発, :.NET Core


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-05-09 (水) 14:17:44 (412d)