Table of Contents

Class ClientInstall

Namespace
WoWLib.Filesystem
Assembly
WoWLib.dll

What a client installation says about itself: the exact version, the flavor that follows from its product code, and the TACT product code itself.

Detecting beats hand-writing a ClientVersion for anything Classic. Those
products ship new builds continuously and the build — not the 1.15 / 4.4
version number — decides which engine's file formats the install
carries, so the build has to be right. detect() reads it from the files
Blizzard's installer leaves behind.

Examples:
    ```python
    from wowlib.fs import ClientInstall, FileSystem, FileSystemSettings

    install = ClientInstall.detect("/Games/World of Warcraft/_classic_era_")
    print(install.version)         # 1.15.9.69109 (ClassicEra)
    print(install.casc_product)    # 'wow_classic_era'

    settings = FileSystemSettings(install.path, install.version,
                                  casc_product=install.casc_product)
    with FileSystem.open(settings) as fs:
        ...
    ```
public class ClientInstall : IDisposable
Inheritance
ClientInstall
Implements
Inherited Members

Constructors

ClientInstall()

public ClientInstall()

ClientInstall(string, ClientVersion, string)

public ClientInstall(string path, ClientVersion version, string cascProduct)

Parameters

path string
version ClientVersion
cascProduct string

ClientInstall(ClientInstall)

Copy-construct: a deep copy of other (the C++ copy constructor).

public ClientInstall(ClientInstall other)

Parameters

other ClientInstall

Properties

CascProduct

The exact TACT product code the installation records ('wow', 'wow_classic_era', 'wow_classic_ptr', ...) — which can be more specific than the flavor's default.

public string CascProduct { get; set; }

Property Value

string

Path

The installation directory that was inspected — the one holding Data/, ready to hand to FileSystemSettings.

public string Path { get; set; }

Property Value

string

Version

The exact installed version, flavor included.

public ClientVersion Version { get; set; }

Property Value

ClientVersion

Methods

Detect(string)

public static ClientInstall Detect(string clientPath)

Parameters

clientPath string

Returns

ClientInstall

Dispose()

Release the native object now. Optional: the finalizer releases it on collection anyway - dispose (or using) when you want native memory back promptly.

public virtual void Dispose()