-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHumankindAssetFramework.csproj
More file actions
77 lines (70 loc) · 5.88 KB
/
Copy pathHumankindAssetFramework.csproj
File metadata and controls
77 lines (70 loc) · 5.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net471</TargetFramework>
<!-- Neutral framework identity (2026-07-19): the assembly/DLL is HAF-branded; the csproj FILE keeps its name so
local clones, build docs, and the CLI compile-check keep working unchanged. -->
<AssemblyName>HumankindAssetFramework</AssemblyName>
<Product>Humankind Asset Framework</Product>
<Version>0.1.0</Version>
<LangVersion>latest</LangVersion>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<DebugType>portable</DebugType>
<!-- Exclude baker/ from ALL default item globs, not just Compile (below). Without this, glbconv's bin/ output
(a self-contained .NET 8 publish full of mscorlib.dll/System.*.dll) gets swept in as candidate assembly
files, and reference resolution silently prefers its .NET 8 facade mscorlib over the net471 reference
assemblies — every framework type then fails to resolve (271x CS0518/CS0103). -->
<!-- _enc\** : historical. CI used to check the EDITOR repo out into _enc/ for the cross-repo schema-parity
guard. The tools moved into editor/ on 2026-08-24 and parity became in-repo, so nothing writes _enc/ any
more. Kept because it costs nothing and a local reproduction of the old workflow would still land there. -->
<!-- editor\** : the AUTHORING TOOLS, which moved into this repo on 2026-08-24 as the com.sswelm.haf-authoring
Unity package. ~19k lines of UnityEditor C# that only Unity can compile — under the default **/*.cs glob
they broke this build the moment they landed (that is exactly how this exclude was found). The package is
consumed by Unity, never by the plugin: the two halves still talk only through the JSON pack registry. -->
<DefaultItemExcludes>$(DefaultItemExcludes);baker\**;tools\**;Tests\**;_enc\**;editor\**</DefaultItemExcludes>
</PropertyGroup>
<!-- BUILD STAMP (2026-08-23). "Which build is actually running?" cost a whole in-game drill: an F8 smoke and a
43-test bake suite were read as PASS for two fixes that were not in the deployed DLL — it was the previous
day's build, and nothing in any output said so. The stamp is baked in at COMPILE time rather than read from
the file's timestamp, so it describes the CODE and survives every copy, deploy and backup restore. It is
deliberately non-deterministic: this assembly is a hand-deployed game plugin, never a cached build input. -->
<PropertyGroup>
<HafBuildStamp>$([System.DateTime]::UtcNow.ToString('yyyy-MM-dd HH:mm'))</HafBuildStamp>
</PropertyGroup>
<ItemGroup>
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
<_Parameter1>HafBuildStamp</_Parameter1>
<_Parameter2>$(HafBuildStamp) UTC</_Parameter2>
</AssemblyAttribute>
</ItemGroup>
<!-- baker/ is the Unity *editor* mesh baker (needs UnityEditor); it ships in the mod, not this plugin. -->
<ItemGroup>
<Compile Remove="baker\**\*.cs" />
<Compile Remove="Haf.Schema\**\*.cs" /> <!-- referenced as a built DLL (ProjectReference below), not compiled in -->
</ItemGroup>
<!-- the shared model schema (netstandard2.0). Ships alongside the plugin to BepInEx/plugins (Private=true). -->
<ItemGroup>
<ProjectReference Include="Haf.Schema\Haf.Schema.csproj" />
</ItemGroup>
<!-- net471 builds with just the .NET SDK (this package IS on nuget.org). -->
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
</ItemGroup>
<!-- BepInEx isn't on nuget.org, so (like GUI-Tools & shakee) all DLLs are local, dropped into a
gitignored References\ folder. See README for exactly which files to copy in. -->
<ItemGroup>
<Reference Include="BepInEx"> <HintPath>References\BepInEx.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="0Harmony"> <HintPath>References\0Harmony.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine"> <HintPath>References\UnityEngine.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine.CoreModule"> <HintPath>References\UnityEngine.CoreModule.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine.IMGUIModule"> <HintPath>References\UnityEngine.IMGUIModule.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine.InputLegacyModule"><HintPath>References\UnityEngine.InputLegacyModule.dll</HintPath><Private>false</Private></Reference>
<Reference Include="UnityEngine.JSONSerializeModule"><HintPath>References\UnityEngine.JSONSerializeModule.dll</HintPath><Private>false</Private></Reference>
<Reference Include="UnityEngine.ImageConversionModule"><HintPath>References\UnityEngine.ImageConversionModule.dll</HintPath><Private>false</Private></Reference>
<Reference Include="UnityEngine.AudioModule"> <HintPath>References\UnityEngine.AudioModule.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine.PhysicsModule"> <HintPath>References\UnityEngine.PhysicsModule.dll</HintPath> <Private>false</Private></Reference>
<Reference Include="UnityEngine.AssetBundleModule"> <HintPath>References\UnityEngine.AssetBundleModule.dll</HintPath> <Private>false</Private></Reference>
<!-- Provided by the game at runtime (Humankind_Data/Managed, used by mod.io). Not copied into our DLL. Robust
registry parsing in the game's Mono runtime, where UnityEngine.JsonUtility silently returns empty. -->
<Reference Include="Newtonsoft.Json"> <HintPath>References\Newtonsoft.Json.dll</HintPath> <Private>false</Private></Reference>
</ItemGroup>
</Project>