跳到主要内容

Outer Loop — Building the .app for Release

The outer loop produces the .app bundle that installs via AutoCount's Plug-in Manager. Used for real customer deployments.

Prerequisites

  • AutoCount Accounting 2.2 SDK installed (AppBuilderCmd.exe is on PATH after that).
  • The plugin builds cleanly in Release mode.
  • Manufacturer metadata matches the registered company name exactly (see C:\Dev\Plugin\WMSSyncHub\CLAUDE.md).

The flow

Steps

1. Bump version

Edit WmsSyncHub\Properties\AssemblyInfo.cs and bump AssemblyVersion + AssemblyFileVersion. Commit.

2. Release build

msbuild WmsSyncHub.sln /p:Configuration=Release /t:Rebuild

Output: WmsSyncHub\bin\Release\WmsSyncHub.dll plus its DevExpress dependencies.

3. Pack the .app

The .app is just a signed zip with a manifest. Use AppBuilderCmd.exe (shipped with AutoCount SDK):

AppBuilderCmd.exe pack `
-manifest plugin.manifest.xml `
-output WmsSyncHub.app

The manifest encodes:

  • Guid = D50D4F42-9AFC-4FA9-A9C8-4FAFDAE4DD96
  • Manufacturer = RUISIN PLASTIC INDUSTRIES SDN BHD
  • ManufacturerUrl, SalesPhone, SupportPhone — see the project CLAUDE.md for the exact values.

:::caution Manufacturer must match registered company AutoCount refuses to install a .app whose manifest manufacturer does not exactly match the AutoCount registered company name. RUISIN PLASTIC INDUSTRIES SDN BHD — case matters, trailing dots matter, do not shorten. :::

4. Install via Plug-in Manager

On the target machine:

  1. Open AutoCount → Tools → Plug-in Manager.
  2. Click Install plug-in, select the .app.
  3. Restart AutoCount when prompted.

5. First-run migrations

On first launch after install, Migrations.cs runs from the plugin side (and again from the API side if a fresh API is also being deployed). Every migration is idempotent — CREATE TABLE IF NOT EXISTS, AddColumnIfMissing — so re-running is safe.

Uninstall

  1. Tools → Plug-in Manager → select WMS Sync Hub → Uninstall.
  2. Restart AutoCount.
  3. The Z_Wms* tables are not dropped — you keep the sync history and can re-install without data loss.

Automating the outer loop

Today this is fully manual. A build-and-install.bat exists in the sibling ATP repo and can be cloned here; TODO tracked in handoff.md.

Caution

:::caution Do not ship with dev App.config Never include the dev WMSSyncHubShadowMain\App.config inside the customer .app bundle — it contains local DB credentials. The manifest should only pack WmsSyncHub\bin\Release\*.dll and the plugin's own resources. :::