-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
98 lines (81 loc) · 4.88 KB
/
Copy pathDirectory.Build.props
File metadata and controls
98 lines (81 loc) · 4.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<Project>
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- Security Enforcement -->
<AnalysisMode>All</AnalysisMode>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Library Packaging Defaults -->
<Authors>Sentinel Team</Authors>
<RepositoryUrl>https://github.com/NikaNats/Sentinel</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/NikaNats/Sentinel</PackageProjectUrl>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- NuGet 2025+ Metadata (for package discoverability) -->
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon Condition="Exists('icon.png')">icon.png</PackageIcon>
<!-- Build Determinism (for reproducible builds in CI/CD) -->
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true' or '$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
<!-- Strong-Name Signing Configuration (Enterprise & FAPI 2.0 Compliance) -->
<!-- 1.Enable signing ONLY during official release packaging to prevent InternalsVisibleTo conflicts during test runs -->
<SignSentinelRelease Condition="'$(SignSentinelRelease)' == ''">false</SignSentinelRelease>
<HasSentinelKeys Condition="Exists('$(MSBuildThisFileDirectory)Sentinel.snk') or Exists('$(MSBuildThisFileDirectory)Sentinel.public.snk')">true</HasSentinelKeys>
<SignAssembly Condition="'$(SignSentinelRelease)' == 'true' and '$(HasSentinelKeys)' == 'true'">true</SignAssembly>
<SignAssembly Condition="'$(SignAssembly)' == ''">false</SignAssembly>
<!-- 2. Prefer private key if present, otherwise fall back to public key -->
<AssemblyOriginatorKeyFile Condition="Exists('$(MSBuildThisFileDirectory)Sentinel.snk')">$(MSBuildThisFileDirectory)Sentinel.snk</AssemblyOriginatorKeyFile>
<AssemblyOriginatorKeyFile Condition="!Exists('$(MSBuildThisFileDirectory)Sentinel.snk') and Exists('$(MSBuildThisFileDirectory)Sentinel.public.snk')">$(MSBuildThisFileDirectory)Sentinel.public.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<!-- 3. Enable PublicSign only when using the public key and signing is active -->
<PublicSign Condition="'$(SignAssembly)' == 'true' and !Exists('$(MSBuildThisFileDirectory)Sentinel.snk')">true</PublicSign>
<!-- Enable NativeAOT trimming validation & AOT compilation -->
<TrimMode>link</TrimMode>
<InvariantGlobalization>true</InvariantGlobalization>
<!-- NOTE: PublishAot/IsAotCompatible must be set per-module since not all dependencies support AOT -->
<!-- EntityFrameworkCore, Configuration binding, and other libraries require dynamic code -->
<!-- Modules using only AOT-compatible libraries can opt-in locally -->
<!-- Comprehensive NoWarn: Production + Test Rules -->
<NoWarn>
$(NoWarn);
CS1591;
CA1032;CA1034;CA1054;CA1062;CA1307;CA1515;CA1707;CA1711;CA1812;CA1819;CA1848;CA1861;CA1873;CA2201;CA2234;CA5398;CA5404;CA1850;IDE0005
</NoWarn>
</PropertyGroup>
<!-- Conditional library defaults -->
<PropertyGroup Condition="'$(IsLibrary)' == 'true'">
<IsPackable>true</IsPackable>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="Sentinel.Tests.Concurrency" />
<InternalsVisibleTo Include="Sentinel.Tests" />
<InternalsVisibleTo Include="Sentinel.Benchmarks" />
<InternalsVisibleTo Include="Sentinel.FuzzTests" />
<InternalsVisibleTo Include="Sentinel.Tests.Unit" />
<InternalsVisibleTo Include="Sentinel.Tests.Integration" />
<InternalsVisibleTo Include="Sentinel.Tests.Security" />
<InternalsVisibleTo Include="Sentinel.Tests.DPoP" />
<InternalsVisibleTo Include="Sentinel.Tests.Session" />
<InternalsVisibleTo Include="Sentinel.Tests.SSF" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Nerdbank.GitVersioning" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)README.md"
Pack="true"
PackagePath="\"
Link="README.md"
Condition="Exists('$(MSBuildThisFileDirectory)README.md')" />
</ItemGroup>
<!-- Conditional app defaults -->
<PropertyGroup Condition="'$(IsApp)' == 'true'">
<IsPackable>false</IsPackable>
</PropertyGroup>
</Project>