Author
Topic: Announcing AppGameKit for Python! (Read 2472 times)

Odd, After a drive search, I have found the missing files in a number of locations. There is C:\Windows|Sysytem32\downlevel, as well as the Java runtime C:\Program Files\Java\jre1.8.0_151\bin. A few other places have them as well.

App-local deployment of the Universal CRT is supported. To obtain the binaries for app-local deployment, install the Windows Software Development Kit (SDK) for Windows 10. The binaries will be installed to C:\Program Files (x86)\Windows Kits\10\Redist\ucrt. You will need to copy all of the DLLs with your app (note that the set of DLLs are necessary is different on different versions of Windows, so you must include all of the DLLs in order for your program to run on all supported versions of Windows).

Item 6 links to a web installer for the SDK. Grab it and run it. Read on before you deciding whether you want to install or download.

If choosing to download, note the download folder. Go through the next screen (I chose not to send anonymous data). From the features list, clear all checkboxes then check "Windows SDK for UWP Managed Apps" (which re-checks a few other options) and click Download.

If you chose install, you're done. If you downloaded instead of installed, open the download folder. Here you can run "winsdksetup.exe" to install everything downloaded or open the Installers folder and find the file called "Universal CRT Redistributable-x86_en-us.msi" and run it. From what I can tell, that is the only part needed and the SDK doesn't include it as a separate installable component. It installs the files to the default location (C:\Program Files (x86)\Windows Kits\10\Redist\ucrt) and can be uninstalled later if desired.

After Universal CRT is installed, add this open your spec file and modify the "pathex" line so it looks like this:

pathex=['C:\\Path\\To\\Script\\File', 'C:\\Program Files (x86)\\Windows Kits\\10\\Redist\\ucrt\\DLLs\\x86'],The warnings should now disappear and the files show up in your dist folder. You might have to delete the build and dist folders that PyInstaller creates before running it against your spec file again.

I generated a package with PyInstaller running on Windows 10 Pro x64 with Python 3.6 x86 after installing "Universal CRT Redistributable-x86_en-us.msi" and modifying the spec file as given above.

I then copied the folder to a fresh install of Windows 7 x64 SP 1 running as a VirtualBox VM and can confirm that the package works in it.The only things I manually installed are the DirectX End-User Runtimes components that AppGameKit requires: Jun2010_XAudio_x86 and Oct2005_xinput_x86, and VirtualBox's guest additions in order to have a compatible 3D driver in the VM, but these items are needed by AppGameKit itself (both tiers 1 and 2).

Removing any of the DLL files from the game folder caused the program to no longer work on the Windows 7 machine, so these files are indeed needed for the rare machine that does not have Universal CRT installed already. The files provided by Windows SDK for Windows 10 appear to work fine with Windows 7. I don't have a Windows Vista VM for testing and haven't had time to install Windows 8 onto a VM.

Side note:AppGameKit for Python will not work on Windows XP because the last Python version for XP is 3.4 and AppGameKit for Python requires 3.6.