Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- How i mkbundled on windoze
- 1) Obtain mono: just download and install
- 2) Launch mono prompt (it's a start menu item added by mono install)
- 3) Obtain list of targets:
- `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
- 4) Obtain target: `mkbundle --target-server http://download.mono-project.com/runtimes/raw/ --fetch-target mono-6.8.0-ubuntu-16.04-x64
- 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:
- 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)
- 5.2) Locate the system install of mono (in this case C:\Program Files\Mono\...)
- 5.3) Copy into the target /lib/ subfolder the _contents_ of system-install folders (flat, with no structure)
- /lib/mono/4.5/Facades/ (contains stuff like System.Runtime.dll)
- /lib/mono/4.5-api (contains stuff like Mono.Messaging.dll)
- /lib/mono/4.5-api/Facades/ (contains stuff like System.Runtime.Interop.dll)
- 6) Obtian files to compile and emplace them into a working folder (in this case C:\Users\Anarchid\mkbundlestuff).
- - All dependency dll's
- - A cut-down Steam build of Chobbyla exe with removed references to speech, game-analytics, and UI.
- * Speech is absent in mono
- * Game-analytics failed at previous attempt (but maybe it could be made to work this time).
- * UI is unnecessary for a Steam build anyway and also failed last time, like previous.
- 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)
- 7) Invoke:
- `mkbundle -o Zero-K_Linux64 --static --cross mono
- -6.8.0-ubuntu-16.04-x64 --no-machine-config --no-config --deps Zero-K.exe`
- * --static means mono will be packaged-in statically
- * --cross means it will be built for the target system (and not for windows, lol)
- * --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".
- * --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.
- * -o is basically output filename.
- * Zero-k.exe is the thing we're bundling, a pre-bilt .net thing.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement