銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

.NET Core on RHEL で csproj をいじってみる

.NET Core に MSBuild がα版としてリリースされました。

blogs.msdn.microsoft.com

ちなみに、これは同じタイミングでリリースされた.NET Core 1.1には同梱されておらず、.NET Core 1.0 の preview3 に同梱されています*1。で、先のブログのリンク先にダウンロードリンクがリストされているのですが...

github.com

RHEL7.2がのってなかったりします*2。ただ、だからといってRHEL7.2向けでMSBuildが利用できるバイナリがないのかというと、そういうわけでもなくて、.NET CLIのリポジトリをみに行くとDaily Buildのリンクが用意されています。

github.com

Red Hat がサポートしている Software Collections経由でのインストールはできないので、FedoraやCentOSと同様にダウンロードした後に次のコマンドで解凍します。

$ sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
$ sudo ln -s /opt/dotnet/dotnet /usr/local/bin

Software Collections経由で入れる場合とは違う場所に解凍され、またPATHも通っていないので、PATHを通すようにするかフルパス指定で利用できるようになります。これでdotnet newすると .csproj とProgram.cs が生成されます。Visual Studioではお馴染みのcsprojですが、LinuxでVisual Studio Codeみると新鮮さがあります。

f:id:tanaka733:20161118172402p:plain

既存のproject.jsonなやつは dotnet migrate で変換できます。確認などはなく一気に変換してしまうので心の準備ができてからどうぞ。変換されたproject.jsonはbackupディレクトリの中に保存されています。

$ /opt/dotnet/dotnet migrate
Project test2 migration succeeded (/home/tatanaka/Documents/demo2/test2)
Summary
Total Projects: 1
Succeeded Projects: 1
Failed Projects: 0
$ ls backup/
project.json

*1:.NET Core Runtimeは正式版だけど、toolingが未だプレビューなのでわりづらいバージョン表記に

*2:そもそもRHELの最新版は7.3になったのですが、そこは生温かい目で