GitHubでアプリのリポジトリのクローン・ビルド・インストールする話

コンピュータ

C# で作ったデスクトップアプリを GitHub で公開し、
まっさらな Windows 11 に Git・.NET SDK をインストールし、
GitHub のソースコードからビルドしてインストールするまで の流れをまとめます。

.NET は Visual Studio を使わずとも dotnet CLI(dotnet.exe)だけで完結 できます。

はじめに

筆者は日々、細々とした自分用ツールをC#で作っていますが、ソースコードを削除してしまうことが度々あります。
実行ファイルだけあれば問題ないですし、必要があれば再度作れば良いかという考えていました。
再作成の為、作成したツールの再利用可能部分をブログ記事化しています。
ただ、プロジェクトの構成を参考にしたい場合など、全体のソースコードが見たい場面もあります。
あまり、まじめにソースコード管理を行うつもりもないですが、GitHubのリポジトリとして公開しておけば、ソースコードを好きな時に参照できるのでは?と思い、公開したリポジトリから、アプリのインストールの手順を記事にしてみました。

前提環境

今回は、次の条件を想定します。

  • Windows 11(Pro版を想定ですがHomeでも問題ないはず)
  • Visual Studio はインストールしない
  • .NET 8 SDK を scoop で導入する
  • GitHub リポジトリは公開(public)
  • C# で作った簡単なツール系アプリ

dotnet CLI だけで完結する構成を意識しています。

Git のインストール(scoop)

Windows に Git を入れる方法はいろいろありますが、
今回はユーザーにも説明しやすい scoop を使います。

scoop のインストール

PowerShell(管理者不要)を開いて以下を実行:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex

Git をインストール

scoop install git

動作確認:

git --version

インストールが成功しているとバージョン番号が表示されます。

.NET SDK のインストール(scoop)

scoop の main バケットには .NET SDK が用意されています。

scoop install dotnet-sdk

動作確認:

dotnet --version

インストールが成功しているとバージョン番号が表示されます。
これで C# のビルドに必要な環境が揃います。

GitHub リポジトリのクローン

ここでは公開リポジトリ https://github.com/username/mytool を例にします。

git clone https://github.com/username/mytool.git
cd mytool

Windows は別途 ssh key を作らなくても clone できます。(公開リポジトリの場合)

公開用ビルド(publish)

エンドユーザー配布向けに publish します。

dotnet publish -c Release -o publish

publish フォルダに exe と必要 DLL がまとまります。

ビルドされたアプリの配置・インストール

publish したフォルダをそのままアプリのフォルダとして利用できます。

mytool/
  publish/
    MyTool.exe
    *.dll
    runtimes/

アプリのプロジェックと種類にもよりますが、このままでも”MyTool.exe”をエクスプローラーなどでダブルクリックすれば実行出来ます。

管理上、publishフォルダを”Program Files”などのプログラムのインストールフォルダにコピーすることが一般的です。
ただ、”Program Files”は標準のプログラムのインストール先ですので、ユーザープログラムのインストールフォルダを別途用意して、そちらにコピーすることをお勧めします。

又、実行バイナリを配布する場合は、publishフォルダ下をzipファイルにアーカイブすると良いでしょう。

アプリの実行

exeファイルのダブルクリックで実行出来ますが、ショートカットなどを作成しデスクトップに配置したり、タスクバーやスタートメニューにピン留めすると、アクセスしやすくなります。

また、初回実行時 Windows の SmartScreen にブロックされますので、「詳細情報」→「実行」で実行を許可しましょう。

コメント