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

-戻る
--[[ASP.NET]]
--[[.NET Core]]

* 目次 [#s808ee45]
#contents

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

*二つの発行方式 [#o6acb6b5]
**フレームワークに依存する展開(Framework-dependent deployment、FDD) [#yfb796bd]
.NET Frameworkでの配置と同様の仕組み。

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

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

-.NET Coreランタイムは共通であるため、実行や配置が容易になる。
--ビルド出力が軽量になるため。
--ビルド出力がOSによらず同一になるため。

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

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

**自己完結型の展開(Self-contained deployment、SFD) [#w88a1ee1]
配置するバイナリのみで実行可能な形式(ランタイムも同時に配置する)

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

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

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

-OSごとにビルドを行ってバイナリを生成しないといけない。
-ランタイムが含まれるので配置するバイナリのサイズが大きくなる。
-配置先のマシンで占めるディスク容量が増える。

*検証 [#w4375a40]
**FDD [#o066066b]

**SFD [#ja4c6c01]
-RuntimeIdentifiersタグを足してビルド
-リリースビルドの下にできたlinux-x64フォルダをZIPする。
-これをLinux側に渡す(後の手順は[[コチラ>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]]のSFDの項を参照)。

 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFrameworks>netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
   <RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
 </PropertyGroup>

*参考 [#q5cc4c84]
**Build Insider [#f1cd1fe4]
-C#による.NET Core入門
-C#による.NET Core入門~
http://www.buildinsider.net/language/dotnetcore
--(1).NET Coreとは? 開発環境(SDKとVisual Studio Code)のインストール~
http://www.buildinsider.net/language/dotnetcore/01
--(2)レッドハット版.NET Coreとマイクロソフト版.NET Coreの違い~
http://www.buildinsider.net/language/dotnetcore/02
--(3).NET Coreでプロジェクトを作成して開発してみよう~
http://www.buildinsider.net/language/dotnetcore/03
--(4).NET Coreでコンソールアプリを配置する~
http://www.buildinsider.net/language/dotnetcore/04

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

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


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