Build and Publish
This page explains how to turn the source code into a runnable LetsMeowToolbox.exe: what environment to install, how to run debugging, and how to package the two single-file publishing modes.
Environment Preparation
| What to Install | Notes |
|---|---|
| Visual Studio 2022 Community | Check the ".NET desktop development" workload during installation |
| .NET 8 SDK | The target framework is net8.0-windows |
| NuGet packages | Restored automatically on first build; the main dependency is HandyControl 3.5.1 |
The Directory.Build.props at the repository root sets EnableWindowsTargeting=true, so cross-compiling this Windows-target project on Linux is also allowed (the dotnet CLI is enough; VS is not mandatory).
Get the Code and Run It (Debug)
git clone https://github.com/Hatasoft-Studio/Lets-Meow-Toolbox.gitThen open LetsMeowToolbox.sln in VS and press F5 to run LetsMeowToolbox.App.
One detail: during build, the high-risk plugin is automatically copied into the plugins folder of the main program's output directory, so the high-risk plugin zone is directly usable in debug mode — no need to move DLLs manually.
Single-File Publishing: Two Modes
What the program publishes externally is a single file LetsMeowToolbox.exe + plugins/ directory, in two modes. The repository's build/ directory contains one PowerShell script for each; both flows have three steps:
- Clean old artifacts;
dotnet publishto publish the main program (single file);- Build the high-risk plugin and copy
LetsMeowToolbox.Plugins.HighRisk.dllinto the artifact directory'splugins/.
Mode 1: Framework-Dependent (Small)
The target machine needs the .NET 8 Desktop Runtime installed first; artifacts are about 10~20 MB:
./build/publish-framework-dependent.ps1
# 产物:dist/framework-dependent/LetsMeowToolbox.exe + plugins/The command actually executed inside the script:
dotnet publish src/LetsMeowToolbox.App/LetsMeowToolbox.App.csproj `
-c Release -r win-x64 -p:PublishSingleFile=true --self-contained false -o dist/framework-dependentMode 2: Self-Contained (Large)
The entire runtime is packaged in; the target machine needs nothing installed; artifacts are about 90~110 MB:
./build/publish-self-contained.ps1
# 产物:dist/self-contained/LetsMeowToolbox.exe + plugins/The command actually executed inside the script:
dotnet publish src/LetsMeowToolbox.App/LetsMeowToolbox.App.csproj `
-c Release -r win-x64 -p:PublishSingleFile=true --self-contained true -o dist/self-containedIf you don't want to use the scripts, manually execute the two dotnet publish commands above, then copy src/LetsMeowToolbox.Plugins.HighRisk/bin/Release/net8.0-windows/LetsMeowToolbox.Plugins.HighRisk.dll into the artifact directory's plugins/ yourself — same effect.
Artifact Comparison Table
| Mode | Artifact Directory | Target Machine Requirement | Size Reference |
|---|---|---|---|
| Framework-dependent | dist/framework-dependent/ | .NET 8 Desktop Runtime required | About 10~20 MB |
| Self-contained | dist/self-contained/ | No .NET installation needed | About 90~110 MB |