「[[マイクロソフト系技術情報 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]
**FDD [#yfb796bd]
-FDD : Framework-dependent deployment

-フレームワークに依存する展開

--.NET Frameworkでの配置と同様の仕組み。

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

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

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

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

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

**SFD [#w88a1ee1]
-SFD : Self-contained deployment

-自己完結型の展開

--配置するバイナリのみで実行可能な形式(ランタイムも同時に配置する)

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

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

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

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

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

**SFD [#ja4c6c01]
-RuntimeIdentifiersを設定する。
 <PropertyGroup>
   <OutputType>Exe</OutputType>
   <TargetFrameworks>netcoreapp2.0;netcoreapp1.1</TargetFrameworks>
   <RuntimeIdentifiers>win-x64;linux-x64;osx-x64</RuntimeIdentifiers>
 </PropertyGroup>

-とは言うものの、ポータブル(共通化)と言われるlinux-x64が早速動かない感があったので、~
各プラットフォーム毎の[[ランタイム識別子 (RID)>#h306c468]]を調べて設定するのが良さそう。
    <RuntimeIdentifiers>win-x64;centos.7-x64;ubuntu.16.04-x64</RuntimeIdentifiers>

-この設定を行いビルドを行うと、Releaseフォルダ以下に~
[[ランタイム識別子 (RID)>#h306c468]]に対応したフォルダにプロジェクト出力が行われる。
--Windows : win-x64
--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]]

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