Closed drewbrew closed 1 year ago
So I tried to get things running locally, and heat.exe appears to be crashing due to something related to the .NET framework, but I have no idea what wix needs (the completely unhelpful error message is taking me to https://learn.microsoft.com/en-us/dotnet/framework/install/application-not-started?version=(null)&processName=heat.exe&platform=0009&osver=6&isServer=0&shimver=4.0.30319.0 -- my error is the first dialog in that link).
@freakboy3742 do you happen to know what version of the .NET framework I might need?
The log itself is mostly useless (aside from laughing at how much of a thin veneer windows 11 really is):
Date/Time: 2022-10-24 09:01:23
Command line: C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\Scripts\briefcase package windows VisualStudio --adhoc-sign
OS Release: Windows 10
OS Version: 10.0.22623
Architecture: AMD64
Platform: Windows-10-10.0.22623-SP0
Python exe: C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\Scripts\python.exe
Python version: 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)]
Virtual env: True
Conda env: False
Briefcase: 0.3.11
Target platform: windows
Target format: VisualStudio
Environment Variables:
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\winst\AppData\Roaming
CAMLIBS=C:\Program Files\darktable\lib\libgphoto2\2.5.29
COMMONPROGRAMFILES=C:\Program Files\Common Files
COMMONPROGRAMFILES(X86)=C:\Program Files (x86)\Common Files
COMMONPROGRAMW6432=C:\Program Files\Common Files
COMPUTERNAME=SIR-BEDEVERE
COMSPEC=C:\WINDOWS\system32\cmd.exe
DRIVERDATA=C:\Windows\System32\Drivers\DriverData
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
FPS_BROWSER_USER_PROFILE_STRING=Default
HOMEDRIVE=C:
HOMEPATH=\Users\winst
IOLIBS=C:\Program Files\darktable\lib\libgphoto2_port\0.12.0
LOCALAPPDATA=C:\Users\winst\AppData\Local
LOGONSERVER=\\SIR-BEDEVERE
NUMBER_OF_PROCESSORS=8
ONEDRIVE=C:\Users\winst\OneDrive
ONEDRIVECONSUMER=C:\Users\winst\OneDrive
OS=Windows_NT
PATH=C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\Scripts;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Git\cmd;C:\Users\winst\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\winst\AppData\Local\Programs\Python\Python310\;C:\Users\winst\AppData\Local\Microsoft\WindowsApps;C:\Users\winst\AppData\Local\Programs\Microsoft VS Code\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 151 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=9705
PROGRAMDATA=C:\ProgramData
PROGRAMFILES=C:\Program Files
PROGRAMFILES(X86)=C:\Program Files (x86)
PROGRAMW6432=C:\Program Files
PROMPT=(.venv) $P$G
PSMODULEPATH=C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
PYTHONUSERBASE=C:\Users\winst\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages
SYSTEMDRIVE=C:
SYSTEMROOT=C:\WINDOWS
TEMP=C:\Users\winst\AppData\Local\Temp
TMP=C:\Users\winst\AppData\Local\Temp
USERDOMAIN=SIR-BEDEVERE
USERDOMAIN_ROAMINGPROFILE=SIR-BEDEVERE
USERNAME=winst
USERPROFILE=C:\Users\winst
VIRTUAL_ENV=C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv
WINDIR=C:\WINDOWS
WSLENV=WT_SESSION::WT_PROFILE_ID
WT_PROFILE_ID={0caa0dad-35be-5f56-a8ff-afceeeaa6101}
WT_SESSION=5b14fbbb-c711-4c9e-aa7e-673f5d2aae9c
_OLD_VIRTUAL_PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Git\cmd;C:\Users\winst\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\winst\AppData\Local\Programs\Python\Python310\;C:\Users\winst\AppData\Local\Microsoft\WindowsApps;C:\Users\winst\AppData\Local\Programs\Microsoft VS Code\bin
_OLD_VIRTUAL_PROMPT=$P$G
Briefcase Log:
[08:59:27] wix.py:100
[wix] The WiX toolset was not found; downloading and installing... wix.py:100
Downloading wix311-binaries.zip... download.py:79
[09:00:00] Installing WiX... done wix.py:138
__init__.py:114
[verify-pyside2] Building MSI... __init__.py:114
Compiling application manifest... __init__.py:117
subprocess.py:516
>>> Running Command: subprocess.py:517
>>> 'C:\Users\winst\AppData\Local\BeeWare\briefcase\Cache\tools\wix\heat.exe' dir 'x64\Release' -nologo -gg -sfrag -sreg -srd -scom -dr subprocess.py:518
verify_pyside2_ROOTDIR -cg verify_pyside2_COMPONENTS -var var.SourceDir -out verify-pyside2-manifest.wxs
>>> Working Directory: subprocess.py:525
>>> C:\Users\winst\code\briefcase-windows-VisualStudio-template\tests\apps\verify-pyside2\windows\VisualStudio\Hello PySide2 subprocess.py:526
[09:01:23] >>> Return code: 2148734720 subprocess.py:553
Compiling... __init__.py:118
__main__.py:27
Unable to generate manifest for app verify-pyside2. __main__.py:28
╭─────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────╮
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\platforms\windows\__init__.py:119 in package_app │
│ │
│ 116 │ │ try: │
│ 117 │ │ │ self.logger.info("Compiling application manifest...") │
│ 118 │ │ │ with self.input.wait_bar("Compiling..."): │
│ ❱ 119 │ │ │ │ self.tools.subprocess.run( │
│ 120 │ │ │ │ │ [ │
│ 121 │ │ │ │ │ │ self.tools.wix.heat_exe, │
│ 122 │ │ │ │ │ │ "dir", │
│ │
│ ╭────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────╮ │
│ │ app = <org.beeware.verify-pyside2 v0.0.1 AppConfig> │ │
│ │ kwargs = {'packaging_format': 'msi', 'sign_app': True, 'adhoc_sign': True, 'identity': None} │ │
│ │ self = <briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand object at 0x00000284EABC6AA0> │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\integrations\subprocess.py:127 in inner │
│ │
│ 124 │ │ │ with sub.tools.input.release_console_control(): │
│ 125 │ │ │ │ return sub_method(sub, args, **kwargs) │
│ 126 │ │ else: │
│ ❱ 127 │ │ │ return sub_method(sub, args, **kwargs) │
│ 128 │ │
│ 129 │ return inner │
│ 130 │
│ │
│ ╭─────────────────────────────────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────────────────────────────────╮ │
│ │ args = [ │ │
│ │ │ WindowsPath('C:/Users/winst/AppData/Local/BeeWare/briefcase/Cache/tools/wix/heat.exe'), │ │
│ │ │ 'dir', │ │
│ │ │ 'x64\\Release', │ │
│ │ │ '-nologo', │ │
│ │ │ '-gg', │ │
│ │ │ '-sfrag', │ │
│ │ │ '-sreg', │ │
│ │ │ '-srd', │ │
│ │ │ '-scom', │ │
│ │ │ '-dr', │ │
│ │ │ ... +7 │ │
│ │ ] │ │
│ │ executable = 'C:\\Users\\winst\\AppData\\Local\\BeeWare\\briefcase\\Cache\\tools\\wix\\heat.exe' │ │
│ │ kwargs = { │ │
│ │ │ 'check': True, │ │
│ │ │ 'cwd': WindowsPath('C:/Users/winst/code/briefcase-windows-VisualStudio-template/tests/apps/verify-pyside2/windows/VisualStudio/Hello PySide2') │ │
│ │ } │ │
│ │ remove_dynamic_elements = False │ │
│ │ sub = <briefcase.integrations.subprocess.Subprocess object at 0x00000284ECE51C60> │ │
│ │ sub_method = <function Subprocess.run at 0x00000284ECD87880> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\integrations\subprocess.py:284 in run │
│ │
│ 281 │ │ if stream_output or ( │
│ 282 │ │ │ self.tools.input.is_console_controlled and not is_output_redirected │
│ 283 │ │ ): │
│ ❱ 284 │ │ │ return self._run_and_stream_output(args, **kwargs) │
│ 285 │ │ │
│ 286 │ │ # Otherwise, invoke run() normally. │
│ 287 │ │ self._log_command(args) │
│ │
│ ╭─────────────────────────────────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────────────────────────────────╮ │
│ │ args = [ │ │
│ │ │ WindowsPath('C:/Users/winst/AppData/Local/BeeWare/briefcase/Cache/tools/wix/heat.exe'), │ │
│ │ │ 'dir', │ │
│ │ │ 'x64\\Release', │ │
│ │ │ '-nologo', │ │
│ │ │ '-gg', │ │
│ │ │ '-sfrag', │ │
│ │ │ '-sreg', │ │
│ │ │ '-srd', │ │
│ │ │ '-scom', │ │
│ │ │ '-dr', │ │
│ │ │ ... +7 │ │
│ │ ] │ │
│ │ is_output_redirected = None │ │
│ │ kwargs = { │ │
│ │ │ 'check': True, │ │
│ │ │ 'cwd': WindowsPath('C:/Users/winst/code/briefcase-windows-VisualStudio-template/tests/apps/verify-pyside2/windows/VisualStudio/Hello PySide2') │ │
│ │ } │ │
│ │ self = <briefcase.integrations.subprocess.Subprocess object at 0x00000284ECE51C60> │ │
│ │ stream_output = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\integrations\subprocess.py:350 in _run_and_stream_output │
│ │
│ 347 │ │ self._log_return_code(return_code) │
│ 348 │ │ │
│ 349 │ │ if check and return_code: │
│ ❱ 350 │ │ │ raise subprocess.CalledProcessError(return_code, args, stderr=stderr) │
│ 351 │ │ │
│ 352 │ │ return subprocess.CompletedProcess(args, return_code, stderr=stderr) │
│ 353 │
│ │
│ ╭───────────────────────────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────────────────────────╮ │
│ │ args = [ │ │
│ │ │ WindowsPath('C:/Users/winst/AppData/Local/BeeWare/briefcase/Cache/tools/wix/heat.exe'), │ │
│ │ │ 'dir', │ │
│ │ │ 'x64\\Release', │ │
│ │ │ '-nologo', │ │
│ │ │ '-gg', │ │
│ │ │ '-sfrag', │ │
│ │ │ '-sreg', │ │
│ │ │ '-srd', │ │
│ │ │ '-scom', │ │
│ │ │ '-dr', │ │
│ │ │ ... +7 │ │
│ │ ] │ │
│ │ check = True │ │
│ │ kwargs = { │ │
│ │ │ 'cwd': WindowsPath('C:/Users/winst/code/briefcase-windows-VisualStudio-template/tests/apps/verify-pyside2/windows/VisualStudio/Hello PySide2'), │ │
│ │ │ 'stdout': -1, │ │
│ │ │ 'stderr': -2, │ │
│ │ │ 'bufsize': 1 │ │
│ │ } │ │
│ │ process = <Popen: returncode: 2148734720 args: ['C:\\Users\\winst\\AppData\\Local\\Bee...> │ │
│ │ return_code = 2148734720 │ │
│ │ self = <briefcase.integrations.subprocess.Subprocess object at 0x00000284ECE51C60> │ │
│ │ stderr = None │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
CalledProcessError: Command '[WindowsPath('C:/Users/winst/AppData/Local/BeeWare/briefcase/Cache/tools/wix/heat.exe'), 'dir', 'x64\\Release', '-nologo', '-gg', '-sfrag', '-sreg', '-srd', '-scom', '-dr', 'verify_pyside2_ROOTDIR', '-cg', 'verify_pyside2_COMPONENTS', '-var', 'var.SourceDir', '-out', 'verify-pyside2-manifest.wxs']' returned non-zero exit status 2148734720.
The above exception was the direct cause of the following exception:
╭─────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────╮
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\__main__.py:21 in main │
│ │
│ 18 │ │ options = command.parse_options(extra=extra_cmdline) │
│ 19 │ │ command.check_obsolete_data_dir() │
│ 20 │ │ command.parse_config(Path.cwd() / "pyproject.toml") │
│ ❱ 21 │ │ command(**options) │
│ 22 │ except HelpText as e: │
│ 23 │ │ logger.info() │
│ 24 │ │ logger.info(str(e)) │
│ │
│ ╭───────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────────╮ │
│ │ command = <briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand object at 0x00000284EABC6AA0> │ │
│ │ Command = <class 'briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand'> │ │
│ │ console = <briefcase.console.Console object at 0x00000284EA680070> │ │
│ │ e = BriefcaseCommandError('Unable to generate manifest for app verify-pyside2.') │ │
│ │ extra_cmdline = ['--adhoc-sign'] │ │
│ │ logger = <briefcase.console.Log object at 0x00000284EA6BDFF0> │ │
│ │ options = {'update': False, 'packaging_format': 'msi', 'sign_app': True, 'adhoc_sign': True, 'identity': None} │ │
│ │ result = 200 │ │
│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\commands\package.py:108 in __call__ │
│ │
│ 105 │ │ else: │
│ 106 │ │ │ state = None │
│ 107 │ │ │ for app_name, app in sorted(self.apps.items()): │
│ ❱ 108 │ │ │ │ state = self._package_app( │
│ 109 │ │ │ │ │ app, update=update, **full_options(state, options) │
│ 110 │ │ │ │ ) │
│ 111 │
│ │
│ ╭─────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────╮ │
│ │ app = <org.beeware.verify-pyside2 v0.0.1 AppConfig> │ │
│ │ app_name = 'verify-pyside2' │ │
│ │ options = {'packaging_format': 'msi', 'sign_app': True, 'adhoc_sign': True, 'identity': None} │ │
│ │ self = <briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand object at 0x00000284EABC6AA0> │ │
│ │ state = None │ │
│ │ update = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\commands\package.py:53 in _package_app │
│ │
│ 50 │ │ │
│ 51 │ │ self.verify_app_tools(app) │
│ 52 │ │ │
│ ❱ 53 │ │ state = self.package_app( │
│ 54 │ │ │ app, packaging_format=packaging_format, **full_options(state, options) │
│ 55 │ │ ) │
│ 56 │
│ │
│ ╭─────────────────────────────────────────────────────────────────────────────────── locals ───────────────────────────────────────────────────────────────────────────────────╮ │
│ │ app = <org.beeware.verify-pyside2 v0.0.1 AppConfig> │ │
│ │ binary_file = WindowsPath('C:/Users/winst/code/briefcase-windows-VisualStudio-template/tests/apps/verify-pyside2/windows/VisualStudio/Hello PySide2/x64/Release/Hello │ │
│ │ PySide2.exe') │ │
│ │ options = {'sign_app': True, 'adhoc_sign': True, 'identity': None} │ │
│ │ packaging_format = 'msi' │ │
│ │ self = <briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand object at 0x00000284EABC6AA0> │ │
│ │ state = None │ │
│ │ template_file = WindowsPath('C:/Users/winst/code/briefcase-windows-VisualStudio-template/tests/apps/verify-pyside2/windows/VisualStudio/Hello PySide2') │ │
│ │ update = False │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\winst\code\briefcase-windows-VisualStudio-template\.venv\lib\site-packages\briefcase\platforms\windows\__init__.py:143 in package_app │
│ │
│ 140 │ │ │ │ │ cwd=self.bundle_path(app), │
│ 141 │ │ │ │ ) │
│ 142 │ │ except subprocess.CalledProcessError as e: │
│ ❱ 143 │ │ │ raise BriefcaseCommandError( │
│ 144 │ │ │ │ f"Unable to generate manifest for app {app.app_name}." │
│ 145 │ │ │ ) from e │
│ 146 │
│ │
│ ╭────────────────────────────────────────────────────── locals ──────────────────────────────────────────────────────╮ │
│ │ app = <org.beeware.verify-pyside2 v0.0.1 AppConfig> │ │
│ │ kwargs = {'packaging_format': 'msi', 'sign_app': True, 'adhoc_sign': True, 'identity': None} │ │
│ │ self = <briefcase.platforms.windows.visualstudio.WindowsVisualStudioPackageCommand object at 0x00000284EABC6AA0> │ │
│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
BriefcaseCommandError: Unable to generate manifest for app verify-pyside2.
@drewbrew AFAIK, WiX has a .NET requirement of .Net framework 3.5. This is an optional component; but I thought it was provided as part of the Windows CI environment.
It's especially weird that this is only affecting the PySide builds - the Toga and PPB builds both call HEAT as well, but they aren't complaining...
This error is on my local box, not the GitHub runner, so needing 3.5 makes sense.
Installing the 3.5 framework didn't help, so I'm even more confused.
Want to see something really fun?
(venv3.10) Z:\beeware\templates\briefcase-windows-visualstudio-template\tests\apps\verify-pyside6>dir "windows\VisualStudio\Hello PySide6\x64\Release\app_packages\PySide6\examples\qml\tutorials\extending\chapter4-customPropertyTypes\__pycache__\
Volume in drive Z is Shared Folders
Volume Serial Number is 0000-0000
Directory of Z:\beeware\templates\briefcase-windows-visualstudio-template\tests\apps\verify-pyside6\windows\VisualStudio\Hello PySide6\x64\Release\app_packages\PySide6\examples\qml\tutorials\extending\chapter4-customPropertyTypes\__pycache__
10/31/2022 09:58 AM 2,868 customPropertyTypes.cpython-310.pyc
1 File(s) 2,868 bytes
0 Dir(s) 1,545,930,473,472 bytes free
but:
(venv3.10) Z:\beeware\templates\briefcase-windows-visualstudio-template\tests\apps\verify-pyside6>dir "windows\VisualStudio\Hello PySide6\x64\Release\app_packages\PySide6\examples\qml\tutorials\extending\chapter4-customPropertyTypes\__pycache__\customPropertyTypes.cpython-310.pyc"
Volume in drive Z is Shared Folders
Volume Serial Number is 0000-0000
Directory of Z:\beeware\templates\briefcase-windows-visualstudio-template\tests\apps\verify-pyside6\windows\VisualStudio\Hello PySide6\x64\Release\app_packages\PySide6\examples\qml\tutorials\extending\chapter4-customPropertyTypes\__pycache__
File Not Found
So... the file exists... unless you look for just that file, in which case it doesn't.
Thanks to Mongoose-Q and davisagli on twitter, it appears Windows has a 260 character limit on file paths. I'm seeing conflicting reports on whether this is or isn't disabled by default on Github Actions - but it's something to investigate.
Wow that is truly impressive. Thanks for digging into it!
This should fix CI by adding missing required info
PR Checklist: