Closed etinquis closed 7 years ago
symlink needed for the "mod tweaks" project, too?
Yeah, any of the mod folders that you want to load in the game. You would just substitute {ModName}
in the examples for Community Core Library - Mod Tweaks
or Community Core Library - Vanilla Tweaks
.
Are you using Zhentar's forked tool to simplify making these pulls? https://ludeon.com/forums/index.php?topic=16599.msg265091#msg265091
@FudgePoly No, the changes from #175 were made with very little decompilation/analysis at all (https://github.com/RimWorldCCLTeam/CommunityCoreLibrary/pull/175#issuecomment-245957535).
The additional changes in this pull request don't include anything that would benefit from a decompiler; it's just build process changes for the project itself.
The post build process is also doing local copies for individual developers. It can't be merged into the main build process. That being said, I'll look into the the module initializer nuget to see what it's doing and if it performs the functions needed.
@ForsakenShell Can you expand on what you mean re: local copies for individual developers? Did you mean things that aren't in PostBuild.txt?
They are in your local PostBuilt.bat (which is a copy of PostBuild.txt). Putting any local copies in the .csproj file will mean that it would attempt those copies on all developers machines. Further, the PostBuild process is there for future expansion and was deliberately set up like it is. We will not be removing that particular step in the build process.
Includes #175 The additional changes here remove the need for InjectModuleInitialize.exe and manually setting up the PostBuild.bats. All that should be necessary to get the build up-and-running from a fresh repo clone is to copy the necessary dlls into the ThirdParty folder and restore the NuGet packages.
These changes remove the automatic copying of dlls into the RimWorld mods folder directly, they just get copied into _Mod. What I've done locally for development purposes as a replacement is create symbolic links(1). This keeps the 'mod' in the RimWorld Mods folder updated without unnecessary copying. It's also helpful when you have multiple RimWorld versions to test against, as you can have two symlinks point to the same place.
In addition, these changes allow building on OSX in Xamarin Studio (I assume it'll work the same in MonoDevelop, if you have that). To achieve that, I found a NuGet package that replaces InjectModuleInitializer.exe and I replaced the batch scripts with msbuild commands in the csprojs.
(1) Symbolic links can be setup with the following console commands:
Windows
In a console window run as Administrator inside the RimWorld Mods directory:
mklink /D "{ModName}" "C:\Path\To\CommunityCoreLibraryRepo\_Mod\{ModType}\{ModName}"
In my case:mklink /D CCL "C:\Users\etinquis\Projects\CommunityCoreLibrary\_Mod\User Release\Community Core Library"
OSX and very probably Linux
In a console window inside the RimWorld Mods directory:
ln -s "/path/to/CommunityCoreLibraryRepo/_Mod/{ModType}/{ModName}" "{ModName}"
In my case:ln -s "/Users/etinquis/Projects/CommunityCoreLibrary/_Mod/User Release/Community Core Library" CCL