Skip to content

Building DaCollector

DaCollector uses .NET 10.0.203 from global.json.

Restore and Build

From the repository root:

dotnet restore DaCollector.sln
dotnet build DaCollector.sln

If you are using the workspace-local SDK:

$env:DOTNET_CLI_HOME = "F:\Collection manager\DaCollector\dotnet-home"
$env:DOTNET_ROOT = "F:\Collection manager\.dotnet"
& "F:\Collection manager\.dotnet\dotnet.exe" build "F:\Collection manager\DaCollector\DaCollector.sln"

Publish Windows Tray Service

Framework-dependent:

dotnet publish DaCollector.TrayService\DaCollector.TrayService.csproj -c Release -r win-x64 --no-self-contained

Standalone:

dotnet publish DaCollector.TrayService\DaCollector.TrayService.csproj -c Release -r win-x64 --self-contained true

Published files are placed under:

DaCollector.Server\bin\Release\net10.0\win-x64\publish

Build Installer

Install Inno Setup and make sure iscc.exe is on PATH.

iscc /O".\" ".\Installer\DaCollector.iss"

The output is:

DaCollector.Setup.exe

Release Workflow Artifacts

The GitHub release workflow is configured to publish:

  • DaCollector.TrayService_Framework_win-x64.zip
  • DaCollector.TrayService_Standalone_win-x64.zip
  • DaCollector.Setup.exe

Use the standalone ZIP when testing on a machine without installed .NET runtimes.

Build Docker Image

docker compose -f compose.yaml build dacollector

Or build directly:

docker build -t dacollector:local .

For ARM64:

docker build -f Dockerfile.aarch64 -t dacollector:local-arm64 .

Publish Docker Image

The Publish Docker Image to GHCR workflow builds linux/amd64 and linux/arm64 images and publishes multi-architecture manifests to:

ghcr.io/iranman/dacollector

On pushes to main or daccollector-main, it publishes:

  • ghcr.io/iranman/dacollector:latest
  • ghcr.io/iranman/dacollector:sha-<commit>

Pull requests build both architectures without pushing.