- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 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]
*発行方式 [#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の項を参照)。
-RuntimeIdentifiersを設定する。
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
</PropertyGroup>
-とは言うものの、ポータブル(共通化)と言われるlinux-x64が早速動かない感があったので、~
各プラットフォーム毎の[[ランタイム識別子 (RID)>#h306c468]]を調べて設定するのが良さそう。
-この設定を行い発行を行うと、[[ランタイム識別子 (RID)>#h306c468]]に対応したフォルダに発行が行われる。
--CentOS : centos.7-x64
--Ubuntu : ubuntu.16.04-x64
-これをLinuxに渡して、実行させる。
--[[CentOS>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#l0581cb3]]
--[[Ubuntu>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#rf2da76b]]
*参考 [#q5cc4c84]
-.NET Coreのインストールとデプロイ - .NET 開発基盤部会 Wiki~
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
**Build Insider [#f1cd1fe4]
-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
**github.com [#ea61fcf3]
-The executable generated from~
`dotnet publish -r ubuntu.16.04-x64~
` doesn't have "x" permission~
· Issue #6286 · dotnet/cli~
https://github.com/dotnet/cli/issues/6286
----
Tags: [[:.NET開発]], [[:.NET Core]]