「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
.NET Coreのコンソールアプリの発行とデプロイ
二つの発行方式 †
フレームワークに依存する展開(Framework-dependent deployment、FDD) †
.NET Frameworkでの配置と同様の仕組み。
プリケーションが動作するOSに.NET Coreのランタイムが
インストールされていることを前提としている仕組み。
メリット †
以下が挙げられる。
- .NET Coreランタイムは共通であるため、実行や配置が容易になる。
- ビルド出力が軽量になるため。
- ビルド出力がOSによらず同一になるため。
デメリット †
以下の2点が挙げられる。
- 事前に.NET Coreランタイムのインストールが必要になる。
- .NET Coreランタイム側のバージョンアップでまれではあるが
開発-実行環境間でアプリの動作に変更が生じる可能性があること。
自己完結型の展開(Self-contained deployment、SFD) †
配置するバイナリのみで実行可能な形式(ランタイムも同時に配置する)
メリット †
以下の2点が挙げられる。
- 開発時にランタイムのインストールが不要。
- 利用するランタイムを完全に固定できる。
デメリット †
以下の3点が挙げられる。
- OSごとにビルドを行ってバイナリを生成しないといけない。
- ランタイムが含まれるので配置するバイナリのサイズが大きくなる。
- 配置先のマシンで占めるディスク容量が増える。
検証 †
FDD †
SFD †
- RuntimeIdentifiers?タグを足してビルド
- リリースビルドの下にできたlinux-x64フォルダをZIPする。
- これをLinux側に渡す(後の手順はコチラのSFDの項を参照)。
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
</PropertyGroup>
参考 †
Build Insider †
Microsoft Docs †
Tags: :.NET開発, :.NET Core