clientmod: build without a local Rec Room install

The mod resolves every game-side type at runtime via
AccessTools.TypeByName, so the IL2CPP interop assemblies
(Assembly-CSharp, Photon3Unity3D, UnityEngine.*) in the csproj were
dead references. Dropped them entirely — only MelonLoader's own
DLLs are actually needed at compile time.

tools/build-patcher-zip.ps1 now downloads MelonLoader BEFORE the
dotnet build and points MelonLoaderDir at the extracted contents,
so a fresh contributor checkout builds the patcher zip cold with
no Rec Room install required.

Mirrors the march-2020-03-10 1f407ef change.
This commit is contained in:
Alexa
2026-05-27 11:49:10 +03:00
parent f331530974
commit 18a5391e37
2 changed files with 49 additions and 52 deletions
+13 -37
View File
@@ -12,21 +12,22 @@
</PropertyGroup>
<!--
MelonLoader 0.6.x build of the DorkNet client patches. This is the
MelonLoader-targeted twin of DorkNet.ClientPatch (which is a BepInEx
plugin). Both apply the same Harmony patches needed for the watch
to point at a DorkNet server — Photon AppId override, .rec.net →
custom-host URI rewrite, Photon CustomAuth identity injection, TLS
trust bypass, Photon region shortcut.
MelonLoader 0.6.x build of the DorkNet client patches. Resolves
every game-side type at runtime via AccessTools.TypeByName, so
Rec Room's IL2CPP-derived interop assemblies (Assembly-CSharp,
Photon3Unity3D, UnityEngine.*) are NOT needed at compile time —
they would be derivative works of the game anyway, so we never
reference them. Only MelonLoader's own DLLs are needed.
Set MelonLoaderDir to <RecRoomInstall>\MelonLoader. Override on the
command line:
dotnet build -p:MelonLoaderDir=C:\... -p:Il2CppAssembliesDir=C:\...
tools/build-patcher-zip.ps1 downloads the MelonLoader release zip
and points MelonLoaderDir at its extracted contents, so a fresh
contributor checkout builds without a local Rec Room install.
To build outside the script (manual dev loop):
dotnet build -p:MelonLoaderDir=<path-to-extracted-MelonLoader>
-->
<PropertyGroup>
<RecRoomDir Condition="'$(RecRoomDir)' == ''">C:\Users\you\Documents\Recnet\dist\RecRoom-Clean-2020.03.10</RecRoomDir>
<MelonLoaderDir Condition="'$(MelonLoaderDir)' == ''">$(RecRoomDir)\MelonLoader</MelonLoaderDir>
<Il2CppAssembliesDir Condition="'$(Il2CppAssembliesDir)' == ''">$(MelonLoaderDir)\Il2CppAssemblies</Il2CppAssembliesDir>
<MelonLoaderDir Condition="'$(MelonLoaderDir)' == ''">$(MSBuildThisFileDirectory)..\build\melonloader</MelonLoaderDir>
</PropertyGroup>
<ItemGroup>
@@ -46,31 +47,6 @@
<HintPath>$(MelonLoaderDir)\net6\Il2CppInterop.Common.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Il2Cppmscorlib">
<HintPath>$(Il2CppAssembliesDir)\Il2Cppmscorlib.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Il2CppSystem">
<HintPath>$(Il2CppAssembliesDir)\Il2CppSystem.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>$(Il2CppAssembliesDir)\Assembly-CSharp.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Assembly-CSharp-firstpass">
<HintPath>$(Il2CppAssembliesDir)\Assembly-CSharp-firstpass.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Photon3Unity3D">
<HintPath>$(Il2CppAssembliesDir)\Photon3Unity3D.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>$(Il2CppAssembliesDir)\UnityEngine.CoreModule.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>