備忘録

備忘録

.NET Core で 実行ファイル(.exe)を作成する

Ⅰ. はじめに

.NET Core のプロジェクトで .exe を作成する方法です。
.NET Core のプロジェクトのデプロイ方法は2通りあります。

# デプロイ方法の名称 略称 実行方法
1 Framework-dependent deployments FDD コマンドで dotnet run として実行する
2 Self-contained deployments SCD 実行ファイルを直接実行する

FDD では .exe の作成ができません。
SCD で .exe を作成します。

SCD は CoreCLR と呼ばれる .NET Core の実行エンジンも出力する為、.NET Core ランタイムが入っていない環境でも実行することができます。
また、 WindowsUbuntumacOS といった異なる OS の実行ファイルのデプロイも可能です。

Ⅱ. やり方

今回はサンプルとして

  • Windows10 64bit
  • macOS 64bit
  • CentOS7 64bit

を対象とします。

1. .csproj ファイルの編集

RuntimeIdentifiers を追記します。
RuntimeIdentifiers に使われる値はこちらからコピペします。
https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog

※2017/10/07追記
.NET Core 2.0からOS指定が簡素化されました。
.NET Core2.0以前 centos.7-x64, ubuntu.16.04-x64, debian.8-x64, win7-x64, win10-x64
.NET Core2.0以降 linux-x64,win-x64

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RuntimeIdentifiers>win10-x64;osx.10.11-x64;centos.7-x64</RuntimeIdentifiers>
  </PropertyGroup>
2. dotnet restore を実行する
dotnet restore
3. ビルドする
dotnet publish -c Release -r win10-x64
dotnet publish -c Release -r osx.10.11-x64
dotnet publish -c Release -r centos.7-x64
4. 実行ファイルが作成される

f:id:kagasu:20170416192427p:plain