-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
68 lines (60 loc) · 3.12 KB
/
Copy pathDirectory.Build.props
File metadata and controls
68 lines (60 loc) · 3.12 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
<Project>
<!--
Shared build settings for every project in the repo (Craft.csproj and anything under tests/).
Per-project settings stay in the .csproj; anything that should be true everywhere lives here.
NOTE for build/Dockerfile: this file must be COPYied alongside Craft.csproj *before* `dotnet restore`,
otherwise restore and build evaluate different properties.
-->
<PropertyGroup>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<InvariantGlobalization>false</InvariantGlobalization>
</PropertyGroup>
<PropertyGroup>
<!--
Run the built-in .NET analyzers and surface IDE code-style rules (IDE****) during `dotnet build`,
not only in the IDE. Severities are set in .editorconfig — this switch is what makes the build
honour them. The repo builds warning-clean; keep it that way.
-->
<AnalysisLevel>latest-recommended</AnalysisLevel>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<!--
Required for IDE0005 (unused usings) to run on build at all — Roslyn cannot report it without a
documentation file. CRAFT is an app, not a published package, so the generated .xml is a build
artifact nobody consumes; CS1591 (missing XML comment on a public member) is therefore noise and
is suppressed. Everything else the doc build reports stays on.
-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!--
CS1591 — missing XML comment on a public member.
CS1573 — some but not all parameters documented. Without this, documenting the one parameter that
genuinely needs explaining forces empty <param/> tags for the self-evident ones, which is
noise that makes the useful documentation harder to find.
-->
<NoWarn>$(NoWarn);CS1591;CS1573</NoWarn>
<!--
Enabled now that the analyzer backlog is cleared and every rule in .editorconfig is enforced at
`warning`. The condition for turning this on was zero outstanding warnings, which the repo meets.
If a future SDK adds a rule that produces new warnings, fix them or set the rule's severity
explicitly in .editorconfig — do not reach for /p:TreatWarningsAsErrors=false.
-->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup>
<Product>CRAFT</Product>
<Company>CyberDrain</Company>
<Authors>CyberDrain</Authors>
<RepositoryUrl>https://github.com/CyberDrain/CRAFT</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<!--
Version stamping. Without this the assembly version defaults to 1.0.0, so the CRAFT version
reported in startup telemetry would be meaningless. Overridden at build time, e.g.
`dotnet build /p:Version=1.4.2+abc123` (CI feeds the real version). The default keeps a real,
non-1.0.0 marker for local builds. AssemblyInformationalVersion carries the full string
(including +metadata); the emitter reads that.
-->
<Version Condition="'$(Version)' == ''">0.0.0-dev</Version>
</PropertyGroup>
</Project>