Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. How i mkbundled on windoze
  2.  
  3. 1) Obtain mono: just download and install
  4.  
  5. 2) Launch mono prompt (it's a start menu item added by mono install)
  6.  
  7. 3) Obtain list of targets:
  8.  
  9. `mkbundle --target-server http://download.mono-project.com/runtimes/raw/ --list-targets` -- the target-server arg is needed because of some certificate issues mono seems to have, cert-store being empty or whatever
  10.  
  11. 4) Obtain target: `mkbundle --target-server http://download.mono-project.com/runtimes/raw/ --fetch-target mono-6.8.0-ubuntu-16.04-x64
  12.  
  13. 5) Fix target files up: mono targets seem to be missing a bunch of critical .dlls in the target folder, so i have to provide them manually. This works like this:
  14. 5.1) Locate the target directory (in this case C:\Users\Anarchid\Documents\.mono\mono-6.8.0-ubuntu-16.04-x64 or some such)
  15. 5.2) Locate the system install of mono (in this case C:\Program Files\Mono\...)
  16. 5.3) Copy into the target /lib/ subfolder the _contents_ of system-install folders (flat, with no structure)
  17. /lib/mono/4.5/Facades/ (contains stuff like System.Runtime.dll)
  18. /lib/mono/4.5-api (contains stuff like Mono.Messaging.dll)
  19. /lib/mono/4.5-api/Facades/ (contains stuff like System.Runtime.Interop.dll)
  20.  
  21. 6) Obtian files to compile and emplace them into a working folder (in this case C:\Users\Anarchid\mkbundlestuff).
  22. - All dependency dll's
  23. - A cut-down Steam build of Chobbyla exe with removed references to speech, game-analytics, and UI.
  24. * Speech is absent in mono
  25. * Game-analytics failed at previous attempt (but maybe it could be made to work this time).
  26. * UI is unnecessary for a Steam build anyway and also failed last time, like previous.
  27.  
  28. This requires being able to build Chobbyla, or, in my case, to have a remnant build from 2017 as a stand-in until a fresh minimal build of the wrapper can be obtained (and preferably stored in a separate branch, and automatically compiled by TeamCity so that this has to be done NEVER AGAIN)
  29. 7) Invoke:
  30. `mkbundle -o Zero-K_Linux64 --static --cross mono
  31. -6.8.0-ubuntu-16.04-x64 --no-machine-config --no-config --deps Zero-K.exe`
  32. * --static means mono will be packaged-in statically
  33. * --cross means it will be built for the target system (and not for windows, lol)
  34. * --deps means dependencies will be bundled alongside. Last time i did this i also had to pass *.dll as arg besides the .exe, but on Windows that errors while omitting it "just works".
  35. * --no-config and --no-machine-config are voodoo. You can also pass --config and --machine-config by locating and referencing appropriate files from the system install.
  36. * -o is basically output filename.
  37. * Zero-k.exe is the thing we're bundling, a pre-bilt .net thing.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement