That's basically what I meant, a kind of kitchen sink app that showcases what the APIs can do as implemented in an example. However, the sample app gets an error after it downloads the required VCRedist. I tried both with sandbox on and off.
Not sure if you meant Visual Studio as in the IDE itself or the redistributables but either way, I seem to have both installed.
Here's the log (wall of text incoming, sorry!)
[2017-07-08 @ 10:25:33.840] [configure] configuring D:\itch.io\Sample Evil App [2017-07-08 @ 10:25:33.982] [configure] native-configure yielded execs: [ "Sample Evil App.exe" ] [2017-07-08 @ 10:25:33.984] [configure/compute-size] computing size of D:\itch.io\Sample Evil App [2017-07-08 @ 10:25:34.019] [configure] total size of D:\itch.io\Sample Evil App: 99.33 MB (104152967 bytes) [2017-07-08 @ 10:25:50.726] [launch] itch 23.4.1 launching game 72778: Sample Evil App [2017-07-08 @ 10:25:50.726] [launch] looking for manifest @ "D:\itch.io\Sample Evil App\.itch.toml" [2017-07-08 @ 10:25:50.728] [launch] found manifest, parsing [2017-07-08 @ 10:25:50.756] [launch] manifest: { "actions": [ { "name": "Default", "path": "Sample Evil App{{EXT}}", "scope": "profile:me" }, { "name": "Sandbox opt-in", "path": "Sample Evil App{{EXT}}", "scope": "profile:me", "sandbox": true }, { "name": "Args", "path": "Sample Evil App{{EXT}}", "args": [ "being", "john", "malkovich" ] } ], "prereqs": [ { "name": "vcredist-2010-x86" }, { "name": "vcredist-2010-x64" }, { "name": "vcredist-2015-x86" }, { "name": "vcredist-2015-x64" } ] } [2017-07-08 @ 10:25:55.017] [launch] Requesting subkey with scope: profile:me [2017-07-08 @ 10:25:55.270] [launch] Got subkey (171 chars, expires 2017-07-15 02:25:43) [2017-07-08 @ 10:25:55.271] [launch] launching prepare for native [2017-07-08 @ 10:25:55.271] [prepare/native] launching windows-prereqs [2017-07-08 @ 10:25:55.274] [windows-prereqs] Assessing prereqs vcredist-2010-x86, vcredist-2010-x64, vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:25:55.280] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2010-x86/info.json [2017-07-08 @ 10:25:55.280] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2010-x64/info.json [2017-07-08 @ 10:25:55.281] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x86/info.json [2017-07-08 @ 10:25:55.281] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x64/info.json [2017-07-08 @ 10:25:55.771] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\3427DAAF14107893AAF25EB6028FE014 [2017-07-08 @ 10:25:55.781] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\C173E5AD3336A8D3394AF65D2BB0CCE6 [2017-07-08 @ 10:25:55.805] [windows-prereqs] Found registry key HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\1926E8D15D0BCE53481466615F760A7F [2017-07-08 @ 10:25:55.806] [spawn] spawning dllassert64 with args msvcp100.dll [2017-07-08 @ 10:25:55.848] [spawn] spawning dllassert64 with args msvcr100.dll [2017-07-08 @ 10:25:55.857] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\10955B73A5990563081BBBDF40E79211 [2017-07-08 @ 10:25:55.864] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\D04BB691875110D32B98EBCF771AA1E1 [2017-07-08 @ 10:25:55.887] [windows-prereqs] Found registry key HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\1D5E3C0FEDA1E123187686FED06E995A [2017-07-08 @ 10:25:55.888] [spawn] spawning dllassert32 with args msvcp100.dll [2017-07-08 @ 10:25:55.914] [spawn] spawning dllassert32 with args msvcr100.dll [2017-07-08 @ 10:25:55.930] [windows-prereqs] Already installed: vcredist-2010-x86, vcredist-2010-x64 [2017-07-08 @ 10:25:55.934] [windows-prereqs] Remaining tasks: vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:25:55.939] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x86) [2017-07-08 @ 10:25:55.942] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x64) [2017-07-08 @ 10:26:36.110] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:26:36.459] [net] vcredist-2015-x64.7z: expected SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:26:36.730] [net] vcredist-2015-x64.7z: actual SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:26:36.730] [net] vcredist-2015-x64.7z: SHA256 checks out! [2017-07-08 @ 10:26:36.730] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:27:03.135] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:27:03.606] [net] vcredist-2015-x86.7z: expected SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:27:03.860] [net] vcredist-2015-x86.7z: actual SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:27:03.860] [net] vcredist-2015-x86.7z: SHA256 checks out! [2017-07-08 @ 10:27:03.861] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:27:05.223] [windows-prereqs] Wrote install plan to C:\Users\Surashu\AppData\Local\Temp\tmp-17736zZ6FsMdYzybR\install_plan.json [2017-07-08 @ 10:27:05.224] [windows-prereqs] Installing all prereqs via butler... [2017-07-08 @ 10:27:05.224] [windows-prereqs] Listening to status updates on \\.\pipe\butler-windows-prereqs-1499480825224 [2017-07-08 @ 10:27:05.250] [butler] butler stderr: [elevate] C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-17736zZ6FsMdYzybR\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499480825224 [2017-07-08 @ 10:27:05.250] [butler] butler stderr: [elevate] runas C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-17736zZ6FsMdYzybR\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499480825224 [2017-07-08 @ 10:27:05.824] [butler] butler stderr: failed ShellExecuteEx call / null hProcess [2017-07-08 @ 10:27:05.890] [prepare/native] Windows prereqs full stack: Error: butler exited with error code 127 at C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\appsrc\util\butler.ts:96:11 at Generator.next (<anonymous>) at fulfilled (C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\app\util\butler.js:4:58) [2017-07-08 @ 10:27:05.890] [launch] crashed with butler exited with error code 127 [2017-07-08 @ 10:27:05.890] [launch] butler exited with error code 127 [2017-07-08 @ 10:27:05.891] [diego] diego here, looking around Caption OSArchitecture Version Microsoft Windows 10 Pro 64-bit 10.0.15063 Caption MaxClockSpeed Name Intel64 Family 6 Model 58 Stepping 9 3401 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz Name Intel(R) HD Graphics 4000 diego out [2017-07-08 @ 10:28:55.714] [launch] itch 23.4.1 launching game 72778: Sample Evil App [2017-07-08 @ 10:28:55.714] [launch] looking for manifest @ "D:\itch.io\Sample Evil App\.itch.toml" [2017-07-08 @ 10:28:55.715] [launch] found manifest, parsing [2017-07-08 @ 10:28:55.732] [launch] manifest: { "actions": [ { "name": "Default", "path": "Sample Evil App{{EXT}}", "scope": "profile:me" }, { "name": "Sandbox opt-in", "path": "Sample Evil App{{EXT}}", "scope": "profile:me", "sandbox": true }, { "name": "Args", "path": "Sample Evil App{{EXT}}", "args": [ "being", "john", "malkovich" ] } ], "prereqs": [ { "name": "vcredist-2010-x86" }, { "name": "vcredist-2010-x64" }, { "name": "vcredist-2015-x86" }, { "name": "vcredist-2015-x64" } ] } [2017-07-08 @ 10:28:57.136] [launch] Requesting subkey with scope: profile:me [2017-07-08 @ 10:28:57.360] [launch] Got subkey (171 chars, expires 2017-07-15 02:28:45) [2017-07-08 @ 10:28:57.360] [launch] launching prepare for native [2017-07-08 @ 10:28:57.360] [prepare/native] launching windows-prereqs [2017-07-08 @ 10:28:57.362] [windows-prereqs] Assessing prereqs vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:28:57.364] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x86/info.json [2017-07-08 @ 10:28:57.365] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x64/info.json [2017-07-08 @ 10:28:57.683] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\3427DAAF14107893AAF25EB6028FE014 [2017-07-08 @ 10:28:57.765] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\10955B73A5990563081BBBDF40E79211 [2017-07-08 @ 10:28:57.766] [windows-prereqs] Remaining tasks: vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:28:57.773] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x86) [2017-07-08 @ 10:28:57.777] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x64) [2017-07-08 @ 10:29:37.244] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:29:37.641] [net] vcredist-2015-x86.7z: expected SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:29:37.889] [net] vcredist-2015-x86.7z: actual SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:29:37.890] [net] vcredist-2015-x86.7z: SHA256 checks out! [2017-07-08 @ 10:29:37.890] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:30:04.030] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:30:04.315] [net] vcredist-2015-x64.7z: expected SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:30:04.579] [net] vcredist-2015-x64.7z: actual SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:30:04.579] [net] vcredist-2015-x64.7z: SHA256 checks out! [2017-07-08 @ 10:30:04.579] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:30:05.903] [windows-prereqs] Wrote install plan to C:\Users\Surashu\AppData\Local\Temp\tmp-177368y1109I4XWDw\install_plan.json [2017-07-08 @ 10:30:05.904] [windows-prereqs] Installing all prereqs via butler... [2017-07-08 @ 10:30:05.904] [windows-prereqs] Listening to status updates on \\.\pipe\butler-windows-prereqs-1499481005904 [2017-07-08 @ 10:30:05.927] [butler] butler stderr: [elevate] C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-177368y1109I4XWDw\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499481005904 [2017-07-08 @ 10:30:05.927] [butler] butler stderr: [elevate] runas C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-177368y1109I4XWDw\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499481005904 [2017-07-08 @ 10:30:09.194] [prepare/native] Windows prereqs full stack: Error: butler exited with error code 1 at C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\appsrc\util\butler.ts:96:11 at Generator.next (<anonymous>) at fulfilled (C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\app\util\butler.js:4:58) [2017-07-08 @ 10:30:09.195] [launch] crashed with butler exited with error code 1 [2017-07-08 @ 10:30:09.195] [launch] butler exited with error code 1 [2017-07-08 @ 10:30:09.195] [diego] diego here, looking around Caption OSArchitecture Version Microsoft Windows 10 Pro 64-bit 10.0.15063 Caption MaxClockSpeed Name Intel64 Family 6 Model 58 Stepping 9 3401 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz Name Intel(R) HD Graphics 4000 diego out [2017-07-08 @ 10:30:50.460] [launch] itch 23.4.1 launching game 72778: Sample Evil App [2017-07-08 @ 10:30:50.460] [launch] looking for manifest @ "D:\itch.io\Sample Evil App\.itch.toml" [2017-07-08 @ 10:30:50.461] [launch] found manifest, parsing [2017-07-08 @ 10:30:50.475] [launch] manifest: { "actions": [ { "name": "Default", "path": "Sample Evil App{{EXT}}", "scope": "profile:me" }, { "name": "Sandbox opt-in", "path": "Sample Evil App{{EXT}}", "scope": "profile:me", "sandbox": true }, { "name": "Args", "path": "Sample Evil App{{EXT}}", "args": [ "being", "john", "malkovich" ] } ], "prereqs": [ { "name": "vcredist-2010-x86" }, { "name": "vcredist-2010-x64" }, { "name": "vcredist-2015-x86" }, { "name": "vcredist-2015-x64" } ] } [2017-07-08 @ 10:30:51.823] [launch] Requesting subkey with scope: profile:me [2017-07-08 @ 10:30:52.094] [launch] Got subkey (171 chars, expires 2017-07-15 02:30:40) [2017-07-08 @ 10:30:52.094] [launch] launching prepare for native [2017-07-08 @ 10:30:52.095] [prepare/native] launching windows-prereqs [2017-07-08 @ 10:30:52.097] [windows-prereqs] Assessing prereqs vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:30:52.099] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x86/info.json [2017-07-08 @ 10:30:52.100] [windows-prereqs] Retrieving https://dl.itch.ovh/itch-redists/vcredist-2015-x64/info.json [2017-07-08 @ 10:30:52.463] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\3427DAAF14107893AAF25EB6028FE014 [2017-07-08 @ 10:30:52.512] [windows-prereqs] Key not present: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\10955B73A5990563081BBBDF40E79211 [2017-07-08 @ 10:30:52.513] [windows-prereqs] Remaining tasks: vcredist-2015-x86, vcredist-2015-x64 [2017-07-08 @ 10:30:52.518] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x86) [2017-07-08 @ 10:30:52.521] [windows-prereqs] Downloading prereq Microsoft Visual C++ 2015 Redistributable Update 3 (x64) [2017-07-08 @ 10:31:48.991] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:31:49.484] [net] vcredist-2015-x64.7z: expected SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:31:49.751] [net] vcredist-2015-x64.7z: actual SHA256: 31f6b2502daeae4487e2c102feb48df793975fefb06fbc758d84bf9f98292411 [2017-07-08 @ 10:31:49.751] [net] vcredist-2015-x64.7z: SHA256 checks out! [2017-07-08 @ 10:31:49.751] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x64) archive [2017-07-08 @ 10:32:01.779] [windows-prereqs] Verifiying integrity of Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:32:02.043] [net] vcredist-2015-x86.7z: expected SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:32:02.286] [net] vcredist-2015-x86.7z: actual SHA256: d5c2e8b4fd0a08be77eddf9153c43df57efdc7542eeab1badee84e80960ff4de [2017-07-08 @ 10:32:02.286] [net] vcredist-2015-x86.7z: SHA256 checks out! [2017-07-08 @ 10:32:02.287] [windows-prereqs] Extracting Microsoft Visual C++ 2015 Redistributable Update 3 (x86) archive [2017-07-08 @ 10:32:03.535] [windows-prereqs] Wrote install plan to C:\Users\Surashu\AppData\Local\Temp\tmp-17736ZNdXnmGJGBCF\install_plan.json [2017-07-08 @ 10:32:03.537] [windows-prereqs] Installing all prereqs via butler... [2017-07-08 @ 10:32:03.537] [windows-prereqs] Listening to status updates on \\.\pipe\butler-windows-prereqs-1499481123537 [2017-07-08 @ 10:32:03.557] [butler] butler stderr: [elevate] C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-17736ZNdXnmGJGBCF\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499481123537 [2017-07-08 @ 10:32:03.558] [butler] butler stderr: [elevate] runas C:\Users\Surashu\AppData\Roaming\itch\bin\butler.exe --json install-prereqs C:\Users\Surashu\AppData\Local\Temp\tmp-17736ZNdXnmGJGBCF\install_plan.json --pipe \\.\pipe\butler-windows-prereqs-1499481123537 [2017-07-08 @ 10:32:05.754] [prepare/native] Windows prereqs full stack: Error: butler exited with error code 1 at C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\appsrc\util\butler.ts:96:11 at Generator.next (<anonymous>) at fulfilled (C:\Users\Surashu\AppData\Local\itch\app-23.4.1\resources\app.asar\app\util\butler.js:4:58) [2017-07-08 @ 10:32:05.755] [launch] crashed with butler exited with error code 1 [2017-07-08 @ 10:32:05.755] [launch] butler exited with error code 1 [2017-07-08 @ 10:32:05.756] [diego] diego here, looking around Caption OSArchitecture Version Microsoft Windows 10 Pro 64-bit 10.0.15063 Caption MaxClockSpeed Name Intel64 Family 6 Model 58 Stepping 9 3401 Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz Name Intel(R) HD Graphics 4000 diego out</anonymous></anonymous></anonymous>
Yeah I understand. Out of curiosity where does it save the redists in Windows? When I was trying to get it to work, it always kept re-downloading them. Are there plans to make it cache the redists instead? To avoid unnecessary bandwidth usage? (Yeah I know few MBs, but there are people with heavily capped internet so all the savings is always better.)
I've been working on prereqs (redists) just yesterday and I was thinking the same thing. The test-prereqs command I just added to butler v6.0.0 does cache them, since I had to run it so often :)
Prerequisites are better documented as of yesterday btw: https://itch.io/docs/itch/integrating/prereqs/