[.NET Core].NET Coreで実行ファイルを作成する

.NET Core1.1で実行ファイルを作成するためのメモ

実行ファイルを作成するといっても事前にネイティブコードにビルドするAOTではなく.NET Coreの本体ごと配布するSelf-contained deployments (SCD)です。

下記のサイトに全部記載されているので詳細はそこで確認してください。
.NET Core Application Deployment

プロジェクトの作成

以前のバージョンではプロジェクトファイルが.jsonだったのですが.csprojに変更されているので注意してください。

$ mkdir sample
$ cd sample
$ dotnet new console
Content generation time: 342.4191 ms
The template "Console Application" created successfully.
$ ls
Program.cs    sample.csproj

.csprojを編集

PropetyGroupRuntimeIdentifiersを追加します。
今回はMac向けのバイナリを作成するためにosx.10.11-x64を追加しました。
使用できるRuntimeIdentifierここに記載されています。
複数指定したい場合は,で区切ります。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
    <RuntimeIdentifiers>osx.10.11-x64</RuntimeIdentifiers>
  </PropertyGroup>
</Project>

必要なパッケージを取得

.csprojを編集した後にこのコマンドを実行してください。
RuntimeIdentifiersを書き換えた事によって必要なものに変更があるためです。

$ dotnet restore

ビルド&配置

$ dotnet publish -c release -r osx.10.11-x64

実行

ビルド結果はbin/release/netcoreapp1.1/osx.10.11-x64/publishにあります。
(release, netcoreapp1.1, osx.10.11-x64の部分は設定によって違います。)

$ cd bin/release/netcoreapp1.1/osx.10.11-x64/publish
$ ./sample
Hello World!
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.