-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
81 lines (69 loc) · 3.94 KB
/
Directory.Build.props
File metadata and controls
81 lines (69 loc) · 3.94 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
<Project>
<!-- Custom path definitions for repository structure -->
<PropertyGroup Label="Custom Repository Variables">
<RepositoryName>timewarp-options-validation</RepositoryName>
<SolutionFile>$(RepositoryRoot)timewarp-options-validation.slnx</SolutionFile>
<RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
<SourceDirectory>$(RepositoryRoot)source/</SourceDirectory>
<TestsDirectory>$(RepositoryRoot)tests/</TestsDirectory>
<DocumentationDirectory>$(RepositoryRoot)Documentation/</DocumentationDirectory>
<ArtifactsDirectory>$(RepositoryRoot)artifacts/</ArtifactsDirectory>
<PackagesDirectory>$(ArtifactsDirectory)packages/</PackagesDirectory>
</PropertyGroup>
<!-- MSBuild and NuGet behavior configuration -->
<PropertyGroup Label="MSBuild/NuGet Configuration">
<!-- Output packages to our local feed directory -->
<PackageOutputPath>$(PackagesDirectory)</PackageOutputPath>
<!-- Central package management -->
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<!-- Suppress .NET preview SDK message -->
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
</PropertyGroup>
<!-- Default language and framework settings for all projects -->
<PropertyGroup Label="Project Defaults">
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<IsPackable>false</IsPackable>
<EnablePreviewFeatures>true</EnablePreviewFeatures>
</PropertyGroup>
<!-- Code quality, analyzers, and warning configuration -->
<PropertyGroup Label="Code Quality and Analysis">
<!-- Treat all warnings as errors -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningLevel>5</WarningLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisMode>All</AnalysisMode>
<AnalysisLevel>latest-all</AnalysisLevel>
<!-- Report analyzer diagnostics in build output -->
<ReportAnalyzer>true</ReportAnalyzer>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
<!-- Generate XML documentation files -->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Emit compiler generated files for source generators -->
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<!-- Suppress specific warnings -->
<!-- CA1014: CLS compliance not required for this library -->
<!-- CA1031: Catch general exceptions (needed for validation error handling) -->
<!-- CA1052: Static holder types (acceptable for test classes) -->
<!-- CA1515: Make types internal (test classes need to be public) -->
<!-- CA1707: Underscores in identifiers (test naming convention uses underscores) -->
<!-- CA1724: Type name conflicts (acceptable in this context) -->
<!-- CA1812: False positives for DI-instantiated classes -->
<!-- CA1848: Use LoggerMessage delegates (performance not critical in validation) -->
<!-- CA1852: Seal types (not applicable for test base classes) -->
<!-- CA2007: ConfigureAwait (not needed for console applications and tests) -->
<!-- RCS1102: Make class static (test classes with static methods are discovered by Fixie) -->
<NoWarn>$(NoWarn);CA1014;CA1031;CA1052;CA1515;CA1707;CA1724;CA1812;CA1848;CA1852;CA2007;RCS1102</NoWarn>
</PropertyGroup>
<!-- Code analyzers applied to all projects -->
<ItemGroup Label="Code Analyzers">
<PackageReference Include="Roslynator.Analyzers" PrivateAssets="all" />
<PackageReference Include="Roslynator.CodeAnalysis.Analyzers" PrivateAssets="all" />
<PackageReference Include="Roslynator.Formatting.Analyzers" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" PrivateAssets="all" />
</ItemGroup>
</Project>