ビルドとリリース
このページではソースコードから実行可能な LetsMeowToolbox.exe を作る方法を説明します:環境に何を入れるか、デバッグの動かし方、2 種類の単一ファイルリリースモードの作り方。
環境準備
| 必要なもの | 説明 |
|---|---|
| Visual Studio 2022 Community | インストール時に「.NET デスクトップ開発」ワークロードにチェック |
| .NET 8 SDK | ターゲットフレームワークは net8.0-windows |
| NuGet パッケージ | 初回ビルド時に自動復元。主な依存は HandyControl 3.5.1 |
リポジトリルートディレクトリの Directory.Build.props で EnableWindowsTargeting=true が設定されているため、この Windows ターゲットプロジェクトの Linux 上でのクロスコンパイルも可能です(dotnet CLI で可、VS は必須ではありません)。
コードを取得して動かす(デバッグ)
git clone https://github.com/Hatasoft-Studio/Lets-Meow-Toolbox.gitその後 VS で LetsMeowToolbox.sln を開き、F5 で LetsMeowToolbox.App を実行するだけです。
1 つのディテール:ビルド時に高リスクプラグインは自動的にメインプログラム出力ディレクトリの plugins フォルダにコピーされるため、デバッグ状態では高リスクプラグインエリアが直接使え、DLL を手動で移動する必要はありません。
単一ファイルリリース:2 種類のモード
プログラムが外部にリリースするのは単一ファイルの LetsMeowToolbox.exe + plugins/ ディレクトリで、2 種類のモードがあります。リポジトリの build/ ディレクトリにはそれぞれ PowerShell スクリプトがあり、フローはどちらも 3 ステップです:
- 古い成果物をクリーン。
dotnet publishでメインプログラムをリリース(単一ファイル)。- 高リスクプラグインをビルドし、
LetsMeowToolbox.Plugins.HighRisk.dllを成果物ディレクトリのplugins/にコピー。
モード一:ランタイム依存(小)
ターゲットマシンは .NET 8 デスクトップランタイムの事前インストールが必要で、成果物は約 10~20 MB:
./build/publish-framework-dependent.ps1
# 产物:dist/framework-dependent/LetsMeowToolbox.exe + plugins/スクリプト内部で実際に実行されるコマンド:
dotnet publish src/LetsMeowToolbox.App/LetsMeowToolbox.App.csproj `
-c Release -r win-x64 -p:PublishSingleFile=true --self-contained false -o dist/framework-dependentモード二:自包含(大)
ランタイムをすべてパッケージに含み、ターゲットマシンは何もインストール不要で、成果物は約 90~110 MB:
./build/publish-self-contained.ps1
# 产物:dist/self-contained/LetsMeowToolbox.exe + plugins/スクリプト内部で実際に実行されるコマンド:
dotnet publish src/LetsMeowToolbox.App/LetsMeowToolbox.App.csproj `
-c Release -r win-x64 -p:PublishSingleFile=true --self-contained true -o dist/self-containedスクリプトを使いたくない場合は、上記 2 つの dotnet publish を手動で実行し、自分で src/LetsMeowToolbox.Plugins.HighRisk/bin/Release/net8.0-windows/LetsMeowToolbox.Plugins.HighRisk.dll を成果物ディレクトリの plugins/ にコピーしても、効果は同じです。
成果物対照表
| モード | 成果物ディレクトリ | ターゲットマシンの要件 | サイズの目安 |
|---|---|---|---|
| ランタイム依存 | dist/framework-dependent/ | .NET 8 デスクトップランタイムのインストールが必要 | 約 10~20 MB |
| 自包含 | dist/self-contained/ | .NET のインストール不要 | 約 90~110 MB |