indygreg/PyOxidizer

Allow Windows MSI's to install in locations other than Program Files

ofek opened this issue · 1 comments

ofek commented

For example https://learn.microsoft.com/en-us/windows/win32/msi/localappdatafolder

def make_msi(exe):
    msi = WiXInstaller(
        id="ddqa",
        filename="ddqa-" + VERSION + "-x64.msi",
        arch="x64",
    )
    msi.add_simple_installer(
        "ddqa",
        "Datadog QA",
        VERSION,
        "Datadog, Inc.",
        exe.to_file_manifest("."),
    )
    msi.install_files_root_directory_id = "LocalAppDataFolder"

    return msi
running light to produce C:\Users\ofek\Desktop\code\ddqa\app\build\x86_64-pc-windows-msvc\release\msi_installer\ddqa-0.0.1.29-x64.msi
C:\Users\ofek\Desktop\code\ddqa\app\build\x86_64-pc-windows-msvc\release\msi_installer\wxs\install-files.wxs(4) : error LGHT0094 : Unresolved reference to symbol 'Directory:LocalAppDataFolder' in section 'Fragment:'.
error: error calling build(): Runtime(RuntimeError { code: "TUGGER_WIX_INSTALLER", message: "building\n\nCaused by:\n    0: running light\n    1: command [\"C:\\\\Users\\\\ofek\\\\Desktop\\\\code\\\\ddqa\\\\app\\\\build\\\\x86_64-pc-windows-msvc\\\\release\\\\msi_installer\\\\wix-toolset.2c1888d5d1dba377\\\\light.exe\", \"-nologo\", \"-ext\", \"WixUIExtension\", \"-ext\", \"WixBalExtension\", \"-ext\", \"WixUtilExtension\", \"-out\", \"C:\\\\Users\\\\ofek\\\\Desktop\\\\code\\\\ddqa\\\\app\\\\build\\\\x86_64-pc-windows-msvc\\\\release\\\\msi_installer\\\\ddqa-0.0.1.29-x64.msi\", \"C:\\\\Users\\\\ofek\\\\Desktop\\\\code\\\\ddqa\\\\app\\\\build\\\\x86_64-pc-windows-msvc\\\\release\\\\msi_installer\\\\wxs\\\\install-files.wixobj\", \"C:\\\\Users\\\\ofek\\\\Desktop\\\\code\\\\ddqa\\\\app\\\\build\\\\x86_64-pc-windows-msvc\\\\release\\\\msi_installer\\\\wxs\\\\main.wixobj\"] exited with code 94", label: "WixInstaller.build()" })
ofek commented

How easy would this be to implement?