https://github.com/ellpeck/gamebundle
A tool to package MonoGame and other .NET Core applications into several distributable formats
https://github.com/ellpeck/gamebundle
bundler gamebundle linux mac monogame monogame-framework release-automation windows
Last synced: about 2 months ago
JSON representation
A tool to package MonoGame and other .NET Core applications into several distributable formats
- Host: GitHub
- URL: https://github.com/ellpeck/gamebundle
- Owner: Ellpeck
- License: mit
- Created: 2020-04-09T14:07:05.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-08-31T11:20:30.000Z (8 months ago)
- Last Synced: 2024-10-13T14:24:16.528Z (7 months ago)
- Topics: bundler, gamebundle, linux, mac, monogame, monogame-framework, release-automation, windows
- Language: C#
- Homepage: https://www.nuget.org/packages/GameBundle
- Size: 67.4 KB
- Stars: 12
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README

**GameBundle** is a tool to package MonoGame and other .NET applications into several distributable formats.
# Installing
GameBundle is a `dotnet` tool, meaning you can install it very easily like so:
```
dotnet tool install --global GameBundle
```# Using
By default, GameBundle builds the `.csproj` file that it finds in the directory that it is run from. The bundled outputs go into `bin/Bundled` by default.To build and bundle your app for Windows, Linux and Mac, all you have to do is run the following command from the directory that contains your project file:
```
gamebundle -wlm
```GameBundle will then build a self-contained release of your application for each system using `dotnet publish` and clean up the output directory using [NetCoreBeauty](https://github.com/nulastudio/NetCoreBeauty) by moving most of the libraries into a `Lib` subdirectory.
## Building a MonoGame Project
If you're building a MonoGame project using MonoGame's DesktopGL version 3.8.2.1105 or later, you can additionally supply the `--mg` argument to automatically exclude MonoGame's native libraries from being moved into the `Lib` subdirectory, which is a requirement for your game to run.# Configuring
GameBundle takes several optional arguments to modify the way it works. To see a list of all possible arguments, simply run
```
gamebundle --help
```Here is a list of them as of GameBundle version 1.6.1:
```
-s, --source The location of the .csproj file that should be built and bundled. By default, the current directory is scanned for one-o, --output (Default: bin/Bundled) The location of the directory that the bundles should be stored in
-v, --verbose Display verbose output while building
-w, --win Bundle for windows
-l, --linux Bundle for linux
-m, --mac Bundle for mac
--win-rid (Default: win-x64) The RID to use for windows builds
--linux-rid (Default: linux-x64) The RID to use for linux builds
--mac-rid (Default: osx-x64) The RID to use for mac builds
-W, --win-arm Bundle for windows arm
-L, --linux-arm Bundle for linux arm
-M, --mac-arm Bundle for mac arm
--win-arm-rid (Default: win-arm64) The RID to use for windows arm builds
--linux-arm-rid (Default: linux-arm64) The RID to use for linux arm builds
--mac-arm-rid (Default: osx-arm64) The RID to use for mac arm builds
-z, --zip Store the build results in zip files instead of folders
-b, --mac-bundle Create an app bundle for mac
--mac-bundle-resources (Default: Content *.icns) When creating an app bundle for mac, things that should go into the Resources folder rather than the MacOS folder
--mac-bundle-ignore When creating an app bundle for mac, things that should be left out of the mac bundle and stay in the output folder
--skip-lib When bundling, skip beautifying the output by moving files to the library folder
-e, --exclude Files that should not be moved to the library folder
--mg Exclude MonoGame's native libraries from being moved to the library folder, which is a requirement for DesktopGL version 3.8.2.1105 or later.
This has the same behavior as supplying the --exclude arguments soft_oal.dll, SDL2.dll, libopenal.so.1, libSDL2-2.0.so.0, libopenal.1.dylib and libSDL2.dylib--lib-name (Default: Lib) The name of the library folder that is created
-t, --trim Trim the application when publishing
-c, --config (Default: Release) The build configuration to use
-a, --build-args Additional arguments that should be passed to the dotnet publish command
-n, --name-builds Name the build output directories by the name of the executable
-N, --name-addition An additional string of text that should be included in the names of the output directories
-V, --include-version Include the project's version in the names of the output directories
--help Display this help screen.
--version Display version information.
```