-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
102 lines (90 loc) · 5.09 KB
/
Copy pathDirectory.Build.props
File metadata and controls
102 lines (90 loc) · 5.09 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
99
100
101
102
<Project>
<!-- Common properties for all projects -->
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>14.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AnalysisLevel>latest-all</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!--
Suppress warnings that cannot be handled by .editorconfig:
- NU1510: Package reference not trimmed (transitive dependencies)
- NU1902: Security vulnerability in transitive dependencies (OpenTelemetry.Api)
- CS1572/CS1573/CS1574: XML doc param/cref mismatches (pending doc cleanup)
CA-level suppressions are in .editorconfig for better granularity.
-->
<NoWarn>$(NoWarn);NU1510;NU1901;NU1902;NU1903;CS1572;CS1573;CS1574</NoWarn>
</PropertyGroup>
<!-- Centralized build output paths -->
<PropertyGroup>
<!-- Define the artifacts root directory -->
<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts\</ArtifactsPath>
<!-- Redirect intermediate output (obj) -->
<BaseIntermediateOutputPath>$(ArtifactsPath)obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
<!-- Redirect final output (bin) -->
<BaseOutputPath>$(ArtifactsPath)bin\$(MSBuildProjectName)\</BaseOutputPath>
<OutputPath>$(BaseOutputPath)$(Configuration)\</OutputPath>
<!-- Redirect package output -->
<PackageOutputPath>$(ArtifactsPath)pkg\</PackageOutputPath>
<!-- GeneratePackageOnBuild set below, conditional on IsPackable -->
<!-- Redirect publish output -->
<PublishDir>$(ArtifactsPath)pub\$(MSBuildProjectName)\$(Configuration)\</PublishDir>
</PropertyGroup>
<!-- Generate XML documentation for packable projects (API reference) -->
<PropertyGroup Condition="'$(IsPackable)' != 'false'">
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS1591</NoWarn>
</PropertyGroup>
<!-- Common metadata for library projects.
Authors/Company use ASCII spelling for NuGet metadata compatibility;
human-facing copyright keeps the umlaut. -->
<PropertyGroup Condition="'$(IsPackable)' != 'false'">
<Authors>Kuestenlogik</Authors>
<Company>Kuestenlogik</Company>
<Copyright>Copyright (c) 2026 Küstenlogik</Copyright>
<PackageTags>streaming, kafka, message-broker, grpc, dotnet, csharp, high-performance</PackageTags>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/Kuestenlogik/Surgewave</RepositoryUrl>
<PackageProjectUrl>https://surgewave.io</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageIcon>icon.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<!-- Version information -->
<PropertyGroup Condition="'$(IsPackable)' != 'false'">
<Version>0.1.0</Version>
<!-- AssemblyVersion + FileVersion folgen $(Version), damit der
Release-Workflow per -p:Version=$V alle drei synchron bumpt.
Padding auf vier Stellen erledigt MSBuild (0.1.6 -> 0.1.6.0).
SemVer-Prerelease-Suffix (z.B. "-ci.37.abc" aus ci.yml) wird
gestripped, weil AssemblyVersionAttribute strikt nur
major.minor.build.revision akzeptiert. -->
<AssemblyVersion>$([System.Text.RegularExpressions.Regex]::Replace($(Version), '-.*$', ''))</AssemblyVersion>
<FileVersion>$([System.Text.RegularExpressions.Regex]::Replace($(Version), '-.*$', ''))</FileVersion>
<SourceRevisionId>$(SourceRevisionId)</SourceRevisionId>
<IncludeSourceRevisionInInformationalVersion>true</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>
<!-- DebugType=embedded folds the PDB into the assembly itself, so
SourceLink data ships inside every .dll inside the .nupkg — no
separate .snupkg required. Avoids the nuget.org symbol-server
race where a back-to-back .snupkg push 404s while the parent
.nupkg is still in validation. Consumer-side source-stepping is
identical (debuggers read the embedded PDB transparently). -->
<PropertyGroup>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<DebugType>embedded</DebugType>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="all" />
</ItemGroup>
<!-- Include icon and README for NuGet packages -->
<ItemGroup Condition="'$(IsPackable)' != 'false'">
<None Include="$(MSBuildThisFileDirectory)icon.png" Pack="true" PackagePath="\" Link="icon.png" Visible="false" Condition="Exists('$(MSBuildThisFileDirectory)icon.png')" />
<None Include="$(MSBuildThisFileDirectory)README.md" Pack="true" PackagePath="\" Link="README.md" Visible="false" Condition="Exists('$(MSBuildThisFileDirectory)README.md')" />
<None Include="$(MSBuildThisFileDirectory)LICENSE" Pack="true" PackagePath="\" Link="LICENSE" Visible="false" Condition="Exists('$(MSBuildThisFileDirectory)LICENSE')" />
</ItemGroup>
</Project>