Can Azeroth Auction Assassin (AAA) Be Run From a Windows Binary?

Yes, AAA can be run from a pre-compiled Windows binary that bundles the Python runtime and all dependencies, allowing users to execute the auction scanner without installing Python manually.

The Azeroth Auction Assassin (AAA) repository at ff14-advanced-market-search/azerothauctionassassin distributes a native Windows executable built with .NET 8. This wrapper embeds the entire Python environment, extracts it on first run, and launches the main application seamlessly.

How the Windows Binary Works

The Windows executable is not a traditional compiled Python program but a .NET 8 console application that acts as a bootstrapper. It embeds three critical resources: the Python embedded distribution, a pre-built Lib.zip containing all pip dependencies, and the main AzerothAuctionAssassin.py script.

When launched, the binary performs self-extraction to %LOCALAPPDATA%\AzerothAuctionAssassin\<version>, ensuring isolated, version-specific installations that do not conflict with system Python or other AAA versions.

Installation and Execution Process

The extraction logic is implemented in AzerothAuctionAssassin-windows/AzerothAuctionAssassin/Program.cs. The process follows four distinct phases:

Step 1: App Version Installation

The binary creates a version-specific directory under %LOCALAPPDATA%\AzerothAuctionAssassin and extracts an embedded ZIP archive containing the application manifest and directory structure. This ensures that updates are handled cleanly by creating new version folders rather than overwriting existing installations.

Step 2: Python Runtime Extraction

The embedded python.zip resource is written to a temporary file and extracted into a python-embedded subdirectory within the version folder. This provides a complete, isolated Python interpreter that does not require system-wide installation or PATH modifications.

Step 3: Package Installation

If the Lib\site-packages directory is missing, the binary extracts the pre-built Lib.zip archive (generated during CI) directly into the Python Lib directory. This step avoids runtime pip calls and network dependencies, ensuring the application works offline immediately after extraction.

Step 4: Launching the Python Script

Finally, the binary invokes the embedded Python interpreter with AzerothAuctionAssassin.py, passing the run-from-windows-bin argument along with the application folder and package paths. This hands control to the Python scanner while maintaining the isolated environment.

Running the Windows Executable

Users can download the latest AzerothAuctionAssassin.exe from the GitHub Releases page linked in the repository README. No additional software installation is required.

Basic Execution

After downloading, launch the application from PowerShell or Command Prompt:

.\AzerothAuctionAssassin.exe

On first run, the binary will extract the Python environment to %LOCALAPPDATA%\AzerothAuctionAssassin\<version>, which may take 10-30 seconds depending on system performance. Subsequent launches use the cached environment and start immediately.

Passing Custom Arguments

The Windows binary forwards command-line arguments to the underlying Python script. To specify an alternative configuration directory:

.\AzerothAuctionAssassin.exe --config "C:\MyAAAConfig"

The wrapper passes all arguments after the internal run-from-windows-bin flag directly to AzerothAuctionAssassin.py, supporting all standard CLI options implemented in the Python layer.

Build Process and CI/CD

The Windows executable is generated automatically via the .github/workflows/windows-exe-build.yml GitHub Actions workflow. This pipeline:

  1. Builds the .NET 8 console application from AzerothAuctionAssassin-windows/
  2. Bundles the Python embedded distribution and Lib.zip as embedded resources
  3. Digitally signs the resulting binary (when certificates are available)
  4. Publishes the executable to GitHub Releases as a downloadable artifact

The build process ensures that the Windows binary always contains the correct Python version and dependency tree specified in requirements.txt, eliminating version mismatch issues for end users.

Summary

  • Azeroth Auction Assassin provides a native Windows binary that requires no Python installation or technical setup.
  • The executable is a .NET 8 bootstrapper that extracts an embedded Python runtime to %LOCALAPPDATA%\AzerothAuctionAssassin on first launch.
  • All dependencies are pre-packaged in Lib.zip and extracted automatically, enabling offline operation immediately after installation.
  • Users can download the latest release from the GitHub repository and run AzerothAuctionAssassin.exe directly from PowerShell or Command Prompt.

Frequently Asked Questions

Does the Windows binary require Python to be installed on my system?

No. The Windows binary embeds a complete Python 3.x runtime and all required packages. The first time you run the executable, it extracts the Python interpreter to your local application data folder, after which the program runs entirely within that isolated environment without touching your system Python installation or PATH.

Where does the Windows binary extract its files?

The binary extracts all resources to %LOCALAPPDATA%\AzerothAuctionAssassin\<version>\, where <version> corresponds to the specific release number. This location contains the python-embedded directory with the interpreter, the Lib folder with dependencies, and the main AzerothAuctionAssassin.py script. You can safely delete this folder to reset the application, and the binary will re-extract on next launch.

Can I use command-line arguments with the Windows executable?

Yes. The Windows binary forwards all command-line arguments to the underlying Python script after the internal run-from-windows-bin flag. You can pass standard arguments such as --config to specify alternative configuration directories or any other flags supported by AzerothAuctionAssassin.py. Simply append your arguments when calling the executable in PowerShell or Command Prompt.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →