Creates nugets with stripped and publicized libraries for Unity game modding.
If the game gets updated, this package needs to get updated too.
strip-assembiles.bat
does two things:
- Strips game assembiles using NStrip. This removes game code and leaves only API definitions.
- Publicizes
Assembly.CSharp.dll
andAAssembly-CSharp-firstpass.dll
. This makes all types, methods, properties and fields public, to make modding easier.
- Go to nuget.org.
- Either log in, or create a new account.
- Create a new API key with permissions to push new packages.
- Create a new repository based on this template.
- Add a secret called
NUGET_KEY
to this repository. Give it the value of the API key you created earlier. - Update the repository's name. This will be used as your Nuget ID, so it can't clash with another nuget package on nuget.org.
- Update the repository's description. This will be used as the nuget's description too.
- Make sure you start off with a clean version of the game files, with no extra/modified dlls.
- Drag the game's exe and drop it on
strip-assembiles.bat
. - Dlls are stripped, publicized, and placed in
package\lib
.
- Edit the
.nuspec
file, make<version>
match the game version where these assemblies come from. - Push to the default branch.
- Updating the default branch will trigger a workflow that will pack the dlls and update the NuGet package.
By default, only Assembly-CSharp.dll
and Assembly-CSharp-firstpass.dll
are publicized. All other dlls are stripped only. To publicize other dlls, edit strip-assemblies.bat
and add the dll names to the toPublicize
variable.
By default, every game assembly gets stripped. If there's any assembly you wish to keep in the package in their original state, add the dll names to the dontTouch
variable.