mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
93 lines
4.9 KiB
XML
93 lines
4.9 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net6.0</TargetFramework>
|
|
<LangVersion>latest</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<RootNamespace>DorkNet.ClientMod</RootNamespace>
|
|
<AssemblyName>DorkNet.ClientMod</AssemblyName>
|
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
|
<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
|
|
<NoWarn>$(NoWarn);CS8602;CS8604;CS0436</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
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.
|
|
|
|
By default the project downloads the pinned MelonLoader release
|
|
into DorkNet.ClientMod/build/ and references those DLLs. Pass
|
|
-p:MelonLoaderDir=<path-to-extracted-MelonLoader> only when you
|
|
deliberately want to use a local override.
|
|
-->
|
|
<PropertyGroup>
|
|
<MelonLoaderVersion Condition="'$(MelonLoaderVersion)' == ''">v0.6.6</MelonLoaderVersion>
|
|
<MelonLoaderCacheRoot>$(MSBuildThisFileDirectory)build\melonloader</MelonLoaderCacheRoot>
|
|
<MelonLoaderZip>$(MelonLoaderCacheRoot)\MelonLoader.x64.$(MelonLoaderVersion).zip</MelonLoaderZip>
|
|
<MelonLoaderDir Condition="'$(MelonLoaderDir)' == ''">$(MelonLoaderCacheRoot)\MelonLoader</MelonLoaderDir>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="EnsureMelonLoaderReferences"
|
|
BeforeTargets="ResolveAssemblyReferences"
|
|
Condition="!Exists('$(MelonLoaderDir)\net6\MelonLoader.dll')">
|
|
<MakeDir Directories="$(MelonLoaderCacheRoot)" />
|
|
<DownloadFile
|
|
SourceUrl="https://github.com/LavaGang/MelonLoader/releases/download/$(MelonLoaderVersion)/MelonLoader.x64.zip"
|
|
DestinationFolder="$(MelonLoaderCacheRoot)"
|
|
DestinationFileName="MelonLoader.x64.$(MelonLoaderVersion).zip"
|
|
SkipUnchangedFiles="true" />
|
|
<Unzip SourceFiles="$(MelonLoaderZip)"
|
|
DestinationFolder="$(MelonLoaderCacheRoot)"
|
|
OverwriteReadOnlyFiles="true" />
|
|
</Target>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="MelonLoader">
|
|
<HintPath>$(MelonLoaderDir)\net6\MelonLoader.dll</HintPath>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
<Reference Include="0Harmony">
|
|
<HintPath>$(MelonLoaderDir)\net6\0Harmony.dll</HintPath>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
<Reference Include="Il2CppInterop.Runtime">
|
|
<HintPath>$(MelonLoaderDir)\net6\Il2CppInterop.Runtime.dll</HintPath>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
<Reference Include="Il2CppInterop.Common">
|
|
<HintPath>$(MelonLoaderDir)\net6\Il2CppInterop.Common.dll</HintPath>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
Dev-tools only: typed references to the per-install Il2Cpp interop
|
|
assemblies MelonLoader generates (Assembly-CSharp / UnityEngine.* /
|
|
TextMeshPro). Used by the native watch "Dev Console" injection
|
|
(DevWatchButton.cs), which needs real types (Button3D.OnClick,
|
|
Object.Instantiate, TextMeshProUGUI, UnityAction) that pure reflection
|
|
couldn't drive in this build. These DLLs are game-derived and are NOT
|
|
redistributed — they're only referenced at build time and resolved at
|
|
runtime from the player's own install. Private=false so they're never
|
|
copied into the mod output. Override the dir with -p:Il2CppAsmDir=… .
|
|
-->
|
|
<PropertyGroup>
|
|
<Il2CppAsmDir Condition="'$(Il2CppAsmDir)' == ''">C:\Users\Alexa\Downloads\DorkRoom-2020.12\MelonLoader\Il2CppAssemblies</Il2CppAsmDir>
|
|
</PropertyGroup>
|
|
<ItemGroup Condition="Exists('$(Il2CppAsmDir)')">
|
|
<Reference Include="Assembly-CSharp"><HintPath>$(Il2CppAsmDir)\Assembly-CSharp.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="Il2Cppmscorlib"><HintPath>$(Il2CppAsmDir)\Il2Cppmscorlib.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="UnityEngine.CoreModule"><HintPath>$(Il2CppAsmDir)\UnityEngine.CoreModule.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="UnityEngine.UI"><HintPath>$(Il2CppAsmDir)\UnityEngine.UI.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="UnityEngine.InputLegacyModule"><HintPath>$(Il2CppAsmDir)\UnityEngine.InputLegacyModule.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="Unity.TextMeshPro"><HintPath>$(Il2CppAsmDir)\Unity.TextMeshPro.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="Il2CppRecRoom.Promises.Runtime"><HintPath>$(Il2CppAsmDir)\Il2CppRecRoom.Promises.Runtime.dll</HintPath><Private>false</Private></Reference>
|
|
<Reference Include="Il2CppRecRoom.Datastructures.Runtime"><HintPath>$(Il2CppAsmDir)\Il2CppRecRoom.Datastructures.Runtime.dll</HintPath><Private>false</Private></Reference>
|
|
</ItemGroup>
|
|
|
|
</Project>
|