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

> Effortlessly run Azeroth Auction Assassin on Windows. Download the pre-compiled binary to use the auction scanner without manual Python installation.

- Repository: [FF14 Advanced Market Search/azerothauctionassassin](https://github.com/ff14-advanced-market-search/azerothauctionassassin)
- Tags: how-to-guide
- Published: 2026-03-01

---

**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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/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:

```powershell
.\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:

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

```

The wrapper passes all arguments after the internal `run-from-windows-bin` flag directly to [`AzerothAuctionAssassin.py`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/.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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/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`](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py). Simply append your arguments when calling the executable in PowerShell or Command Prompt.