diff --git a/README.md b/README.md
index 9c473792d..07d4297e0 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# RSCG - 276 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
+# RSCG - 277 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
-The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 276 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
+The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 277 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem
-## Latest Update : 2026-07-03 => 03 July 2026
+## Latest Update : 2026-07-04 => 04 July 2026
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
@@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
## Content
-Those are the 276 Roslyn Source Code Generators that I have tested you can see and download source code example.
+Those are the 277 Roslyn Source Code Generators that I have tested you can see and download source code example.
( including 16 from Microsoft )
+### 277. [Bennewitz.Ninja.AutoVersioning](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning) , in the [EnhancementProject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) category
+
+Generated on : 2026-07-04 => 04 July 2026
+
+
+ Expand
+
+
+
+Author: Brian Bennewitz
+
+Assembly info incremental source generator.
+
+Nuget: [https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/)
+
+
+Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning)
+
+Source: [https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning)
+
+
+
### 276. [TinyBDD.MSTest](https://ignatandrei.github.io/RSCG_Examples/v2/docs/TinyBDD.MSTest) , in the [Tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) category
Generated on : 2026-07-03 => 03 July 2026
diff --git a/later.md b/later.md
index 7d3884886..736db985d 100644
--- a/later.md
+++ b/later.md
@@ -1,6 +1,6 @@
# Just later
-## Latest Update : 2026-07-03 => 03 July 2026
+## Latest Update : 2026-07-04 => 04 July 2026
diff --git a/v2/.tours/Bennewitz.Ninja.AutoVersioning.tour b/v2/.tours/Bennewitz.Ninja.AutoVersioning.tour
new file mode 100644
index 000000000..7cce7429b
--- /dev/null
+++ b/v2/.tours/Bennewitz.Ninja.AutoVersioning.tour
@@ -0,0 +1,36 @@
+
+{
+ "$schema": "https://aka.ms/codetour-schema",
+ "title": "Bennewitz.Ninja.AutoVersioning",
+ "steps":
+ [
+ {
+ "file": "rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/InfoPrj.csproj",
+ "description": "First, we add Nuget [Bennewitz.Ninja.AutoVersioning](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/) in csproj ",
+ "pattern": "Bennewitz.Ninja.AutoVersioning"
+ }
+
+ ,{
+ "file": "rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/Program.cs",
+ "description": "File Program.cs \r\n>> dotnet run --project rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/InfoPrj.csproj ",
+ "pattern": "this is the code"
+ }
+
+
+ ,{
+ "file": "rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/obj/GX/Bennewitz.Ninja.AutoVersioning.SourceGenerators/Bennewitz.Ninja.AutoVersioning.SourceGenerators.AssemblyInfoGenerator/DirectoryBuildInfo.g.cs",
+ "description": "Generated File 2 from 2 : DirectoryBuildInfo.g.cs ",
+ "line": 1
+ }
+
+ ,{
+ "file": "rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/obj/GX/Bennewitz.Ninja.AutoVersioning.SourceGenerators/Bennewitz.Ninja.AutoVersioning.SourceGenerators.AssemblyInfoGenerator/AutoVersionedAssemblyInfo.g.cs",
+ "description": "Generated File 1 from 2 : AutoVersionedAssemblyInfo.g.cs ",
+ "line": 1
+ }
+
+ ],
+
+ "ref": "main"
+
+}
\ No newline at end of file
diff --git a/v2/Generator/MultiGeneratorV2.cs b/v2/Generator/MultiGeneratorV2.cs
index 35e0de32f..644724680 100644
--- a/v2/Generator/MultiGeneratorV2.cs
+++ b/v2/Generator/MultiGeneratorV2.cs
@@ -118,6 +118,9 @@ public string[] SourceNoRSCG()
if (File.Exists(nameFile))
{
var text=await File.ReadAllTextAsync(nameFile);
+ text = text.Replace("(Directory.Build.props.template", $"({d.Generator!.Source}/Directory.Build.props.template");
+ text = text.Replace("(Build.ps1.template", $"({d.Generator!.Source}/Build.ps1.template");
+ text = text.Replace("(Build.sh.template", $"({d.Generator!.Source}/Build.sh.template");
text = text.Replace("(examples/", $"({d.Generator!.Source}/examples/");
text = text.Replace("(tests/", $"({d.Generator!.Source}/tests/");
diff --git a/v2/Generator/all.csv b/v2/Generator/all.csv
index d801233b3..df9f2acc0 100644
--- a/v2/Generator/all.csv
+++ b/v2/Generator/all.csv
@@ -275,3 +275,4 @@ Nr,Key,Source,Category
274,Dirge, https://github.com/IkuzakIkuzok/Dirge,Disposer
275,Porticle.Enumly, https://github.com/Machibuse/Porticle.Enumly,Enum
276,TinyBDD.MSTest, https://github.com/JerrettDavis/TinyBDD,Tests
+277,Bennewitz.Ninja.AutoVersioning, https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning,EnhancementProject
diff --git a/v2/RSCGExamplesData/GeneratorDataRec.json b/v2/RSCGExamplesData/GeneratorDataRec.json
index f412f54f8..73af9bf9f 100644
--- a/v2/RSCGExamplesData/GeneratorDataRec.json
+++ b/v2/RSCGExamplesData/GeneratorDataRec.json
@@ -1672,5 +1672,11 @@
"Category": 13,
"dtStart": "2026-07-03T00:00:00",
"show": true
+ },
+ {
+ "ID":"Bennewitz.Ninja.AutoVersioning",
+ "Category": 1,
+ "dtStart": "2026-07-04T00:00:00",
+ "show": true
}
]
\ No newline at end of file
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/description.json b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/description.json
new file mode 100644
index 000000000..a464d7605
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/description.json
@@ -0,0 +1,22 @@
+{
+ "generator":{
+ "name":"Bennewitz.Ninja.AutoVersioning",
+ "nuget":[
+ "https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/"
+ ],
+ "link":"https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning",
+ "author":"Brian Bennewitz",
+ "source":"https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning"
+ },
+ "data":{
+ "goodFor":["Generating build version numbers for .NET projects"],
+ "csprojDemo":"InfoPrj.csproj",
+ "csFiles":["Program.cs"],
+ "excludeDirectoryGenerated":[""],
+ "includeAdditionalFiles":[""]
+ },
+ "links":{
+ "blog":"",
+ "video":""
+ }
+}
\ No newline at end of file
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/nuget.txt b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/nuget.txt
new file mode 100644
index 000000000..b6931cdad
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/nuget.txt
@@ -0,0 +1 @@
+Assembly info incremental source generator.
\ No newline at end of file
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/readme.txt b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/readme.txt
new file mode 100644
index 000000000..e0ba900fd
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/readme.txt
@@ -0,0 +1,163 @@
+# Bennewitz.Ninja.AutoVersioning
+
+A [Roslyn incremental source generator](https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/source-generators-overview) that injects assembly metadata attributes and build-time constants into .NET projects at compile time — no `AssemblyInfo.cs`, no disk writes, full IDE caching.
+
+[](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning)
+[](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/actions/workflows/ci.yml)
+
+## Requirements
+
+.NET SDK 6.0 or later (requires Roslyn 4.0+ for `IIncrementalGenerator` support). The consuming project may target any framework — `.NET Framework 4.x`, `.NET Standard`, `.NET 6+`, etc.
+
+## Quick Start
+
+**1. Add the package:**
+
+```xml
+
+```
+
+**2. Enable the generator** in your root `Directory.Build.props` (or any `.props` / `.csproj` imported by your build):
+
+```xml
+
+ true
+ YourCompany
+ YourProduct
+
+
+ $(GITHUB_SHA)
+ $(GITHUB_ACTIONS)
+ $(MY_VERSION_VAR)
+
+```
+
+> **Note:** The package's auto-imported `Build.props` automatically suppresses the 8 SDK-generated attributes that conflict with this generator (e.g. `AssemblyVersion`, `AssemblyCopyright`). It uses granular per-attribute suppressions rather than `false`, which means `InternalsVisibleTo` and all other SDK-generated attributes continue to work normally. Do **not** add `false` yourself — it will break `InternalsVisibleTo`.
+
+A ready-to-use template is available at [`Directory.Build.props.template`](Directory.Build.props.template).
+
+**3. Build.** The generator runs automatically — no further setup needed.
+
+> **Tip:** View the generated files in your IDE under `Dependencies → Analyzers → *SourceGenerators`.
+
+---
+
+## Generated Output
+
+Given a build on 2026-04-29 at 14:35 UTC for company `Acme Corp`, product `Acme App`, commit `abc1234def`, and public version `3.1.0`:
+
+### `AutoVersionedAssemblyInfo.g.cs`
+
+```csharp
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyDescription("Assembly Version: 2026.2.429.1435")]
+[assembly: AssemblyConfiguration("Release")]
+[assembly: AssemblyCompany("Acme Corp")]
+[assembly: AssemblyProduct("Acme App v2026.2.429.1435")]
+[assembly: AssemblyCopyright("Copyright 2026 [Release]")]
+[assembly: AssemblyVersion("2026.2.429.1435")]
+[assembly: AssemblyFileVersion("2026.2.429.1435")]
+[assembly: AssemblyInformationalVersion("Commit♥: abc1234def")]
+[assembly: AssemblyMetadata("CommitSha", "abc1234def")]
+[assembly: AssemblyMetadata("GITHUB_SHA", "abc1234def")]
+[assembly: AssemblyMetadata("PublicVersion", "3.1.0")]
+```
+
+### `DirectoryBuildInfo.g.cs`
+
+```csharp
+//
+namespace Bennewitz.Ninja.AutoVersioning
+{
+ /// Build-time constants generated by the source generator.
+ public static class DirectoryBuildInfo
+ {
+ public const string BuildRelease = "Version 2026.2.429.1435 [built 4/29/2026 2:35:00 PM (UTC)]";
+ }
+}
+```
+
+Use `DirectoryBuildInfo.BuildRelease` wherever you need the build version at runtime — error trackers, log enrichment, health endpoints — without reading environment variables.
+
+---
+
+## Configuration Reference
+
+| MSBuild Property | Description | Required |
+|---|---|---|
+| `GenerateAutoVersionedAssemblyInfo` | Set to `true` to enable the generator | **Yes** |
+| `AssemblyCompany` | Value for `[assembly: AssemblyCompany(...)]` | **Yes** |
+| `AssemblyProduct` | Value for `[assembly: AssemblyProduct(...)]` | **Yes** |
+| `CopyrightHolder` | Name shown in the copyright attribute — defaults to `AssemblyCompany` if omitted | No |
+| `CommitSha` | Git commit SHA | No |
+| `IsContinuousIntegration` | `true` on CI runs | No |
+| `PublicVersion` | Your app's public-facing version string | No |
+| `Configuration` | `Debug` / `Release` — set automatically by MSBuild | Auto |
+| `BuildTimestamp` | Build start time in `yyyyMMddHHmmss` format — captured automatically at MSBuild evaluation time (before any project compiles), ensuring a consistent version across all projects in a multi-project solution build. Override on CI for an exact guarantee: `dotnet build -p:BuildTimestamp=$(date +%Y%m%d%H%M%S)` | Auto |
+
+### CI Provider Mappings
+
+| Provider | Commit SHA | CI flag |
+|---|---|---|
+| GitHub Actions | `$(GITHUB_SHA)` | `$(GITHUB_ACTIONS)` |
+| GitLab CI | `$(CI_COMMIT_SHA)` | `$(GITLAB_CI)` |
+| Bitbucket Pipelines | `$(BITBUCKET_COMMIT)` | `$(CI)` |
+
+### Version Format
+
+The generator uses **CalVer**: `YEAR.QUARTER.MMDD.HHmm`
+
+| Part | Example | Meaning |
+|---|---|---|
+| Major | `2026` | Calendar year |
+| Minor | `2` | Quarter (1–4) |
+| Build | `429` | Month + day (`MMdd` as integer) |
+| Revision | `1435` | Hour + minute (`HHmm` as integer) |
+
+---
+
+## How It Works
+
+This is a modern C# `IIncrementalGenerator`. Compared to legacy `ISourceGenerator` approaches it:
+
+- Runs **entirely in-memory** — zero files written to disk
+- Uses the **Roslyn caching pipeline** — the IDE (Rider, Visual Studio) only re-runs the generator when its inputs change, eliminating background compilation loops
+- Reads MSBuild properties **via `AnalyzerConfigOptionsProvider`** — safe, no direct environment variable reads
+
+The package auto-imports `Build.props` via NuGet, which declares `CompilerVisibleProperty` items and suppresses the SDK's default `AssemblyInfo` generation (preventing CS0579 duplicate attribute errors when the generator is enabled).
+
+### Timestamp Consistency in Multi-Project Builds
+
+`BuildTimestamp` keeps the version consistent across every project in a solution build. See [`docs/MultiProjectBuildTimestamps.md`](docs/MultiProjectBuildTimestamps.md) for how it works and what alternative approaches were considered.
+
+> **TL;DR:** For CI, or any local build where an exact guarantee matters more than convenience, use `-p:BuildTimestamp=...` to fix the value explicitly instead of relying on evaluation-time capture. Ready-to-use wrappers are available at [`Build.ps1.template`](Build.ps1.template) (Windows/PowerShell 7+) and [`Build.sh.template`](Build.sh.template) (Linux/macOS/bash).
+
+### Diagnostics
+
+| ID | Severity | Description |
+|---|---|---|
+| `BAUTOVERSIONING00` | Warning | Generator is installed but `GenerateAutoVersionedAssemblyInfo` is not set to `true` (single-line signal) |
+| `BAUTOVERSIONING01` | Warning | Generator threw an unexpected exception |
+| `BAUTOVERSIONING02` | Error | `AssemblyCompany` is not configured |
+| `BAUTOVERSIONING03` | Error | `AssemblyProduct` is not configured |
+| `BAUTOVERSIONING04` | Warning | Multi-line setup snippet emitted alongside BAUTOVERSIONING00 — shows the required `Directory.Build.props` configuration |
+
+---
+
+## Building Locally
+
+Requires PowerShell 7+ and the .NET SDK.
+
+```powershell
+./Pack.ps1
+```
+
+The script prompts for a version (defaults to CalVer `YYYY.Q.MMDD`) and produces `.nupkg` files in `packages/Debug/` and `packages/Release/`.
+
+---
+
+## License
+
+MIT © 2026 Brian Bennewitz
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj.slnx b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj.slnx
new file mode 100644
index 000000000..8059a92a1
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj.slnx
@@ -0,0 +1,3 @@
+
+
+
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/InfoPrj.csproj b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/InfoPrj.csproj
new file mode 100644
index 000000000..e9d6db399
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/InfoPrj.csproj
@@ -0,0 +1,49 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+ true
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ AOM Company
+ Andrei Ignat Product
+
+
+ $(GITHUB_SHA)
+ $(GITHUB_ACTIONS)
+ $(MY_VERSION_VAR)
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
+
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/Program.cs b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/Program.cs
new file mode 100644
index 000000000..daf2b705a
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/src/InfoPrj/Program.cs
@@ -0,0 +1,4 @@
+using Bennewitz.Ninja.AutoVersioning;
+
+Console.WriteLine("Hello, World!");
+Console.WriteLine(DirectoryBuildInfo.BuildRelease);
\ No newline at end of file
diff --git a/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/video.json b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/video.json
new file mode 100644
index 000000000..7eea42a1a
--- /dev/null
+++ b/v2/rscg_examples/Bennewitz.Ninja.AutoVersioning/video.json
@@ -0,0 +1,39 @@
+{
+ "scriptName": "Bennewitz.Ninja.AutoVersioning",
+ "steps":
+[
+ {"typeStep":"exec","arg":"clipchamp.exe launch"},
+ {"typeStep":"text","arg": "Welcome to Roslyn Examples"},
+ {"typeStep":"text","arg":"If you want to see more examples , see List Of RSCG"},
+ {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG"},
+ {"typeStep":"text","arg": "My name is Andrei Ignat and I am deeply fond of Roslyn Source Code Generator. "},
+
+{"typeStep":"text","arg": "Today I will present Bennewitz.Ninja.AutoVersioning . Generating build version numbers for .NET projects ."},
+{"typeStep":"browser","arg":"https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/"},
+{"typeStep":"text","arg": "The whole example is here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning"},
+{"typeStep":"text","arg": "You can download the code from here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning#download-example-net--c-"},
+{"typeStep":"text","arg":"Here is the code downloaded "},
+{"typeStep":"exec","arg":"explorer.exe /select,D:\\gth\\RSCG_Examples\\v2\\Generator.sln"},
+{"typeStep":"text","arg": "So , let's start the project with Visual Studio Code "},
+{"typeStep":"stepvscode","arg": "-n D:\\gth\\RSCG_Examples\\v2"},
+
+{"typeStep":"text","arg": "To use it ,you will put the Nuget Bennewitz.Ninja.AutoVersioning into the csproj "},
+
+{"typeStep":"stepvscode","arg": "-r -g D:\\gth\\RSCG_Examples\\v2\\rscg_examples\\Bennewitz.Ninja.AutoVersioning\\src\\InfoPrj\\InfoPrj.csproj"},
+
+{"typeStep":"text","arg": "And now I will show you an example of using Bennewitz.Ninja.AutoVersioning"},
+
+{"typeStep":"hide","arg": "now execute the tour in VSCode"},
+{"typeStep":"tour", "arg": "src/.tours/"},
+{"typeStep":"text","arg":" And I will execute the project"},
+{"typeStep":"showproj", "arg":"InfoPrj.csproj"},
+{"typeStep":"text","arg":" This concludes the project"},
+{"typeStep":"waitseconds","arg":"30"},
+{"typeStep":"text","arg": "Remember, you can download the code from here"},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning#download-example-net--c-",
+SpeakTest=" "},
+{"typeStep":"waitseconds","arg":"30"},
+]
+}
diff --git a/v2/rscg_examples_site/docs/Authors/Brian_Bennewitz.md b/v2/rscg_examples_site/docs/Authors/Brian_Bennewitz.md
new file mode 100644
index 000000000..300c2f60e
--- /dev/null
+++ b/v2/rscg_examples_site/docs/Authors/Brian_Bennewitz.md
@@ -0,0 +1,7 @@
+# Author : Brian Bennewitz
+
+Number RSCG: 1
+
+
+ 1 [Bennewitz.Ninja.AutoVersioning](/docs/Bennewitz.Ninja.AutoVersioning) [](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/)  2026-07-04
+
diff --git a/v2/rscg_examples_site/docs/Categories/EnhancementProject.md b/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
index 333c4bfdb..2b7bb5f1a 100644
--- a/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
+++ b/v2/rscg_examples_site/docs/Categories/EnhancementProject.md
@@ -1,6 +1,6 @@
EnhancementProject
-Number RSCG: 21
+Number RSCG: 22
1 [AssemblyMetadata](/docs/AssemblyMetadata) [](https://www.nuget.org/packages/AssemblyMetadata/)  2026-04-02
@@ -12,35 +12,37 @@ Number RSCG: 21
5 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
- 6 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
+ 6 [Bennewitz.Ninja.AutoVersioning](/docs/Bennewitz.Ninja.AutoVersioning) [](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/)  2026-07-04
- 7 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
+ 7 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
- 8 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
+ 8 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
- 9 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
+ 9 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
- 10 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
+ 10 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
- 11 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
+ 11 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
- 12 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
+ 12 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
- 13 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
+ 13 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
- 14 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
+ 14 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
- 15 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
+ 15 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
- 16 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
+ 16 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
- 17 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
+ 17 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
- 18 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
+ 18 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
- 19 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
+ 19 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
- 20 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+ 20 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
- 21 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
+ 21 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+
+ 22 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
\ No newline at end of file
diff --git a/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx b/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
index 2f0102445..8622833f9 100644
--- a/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
+++ b/v2/rscg_examples_site/docs/Categories/_PrimitiveEnhancementProject.mdx
@@ -10,37 +10,39 @@
5 [AutoSpectre](/docs/AutoSpectre) [](https://www.nuget.org/packages/AutoSpectre.SourceGeneration)[](https://www.nuget.org/packages/AutoSpectre)  2024-02-24
- 6 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
+ 6 [Bennewitz.Ninja.AutoVersioning](/docs/Bennewitz.Ninja.AutoVersioning) [](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/)  2026-07-04
- 7 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
+ 7 [BuildInfo](/docs/BuildInfo) [](https://www.nuget.org/packages/BuildInfo/)  2024-01-20
- 8 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
+ 8 [Credfeto.Version.Information.Generator](/docs/Credfeto.Version.Information.Generator) [](https://www.nuget.org/packages/Credfeto.Version.Information.Generator/)  2024-11-05
- 9 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
+ 9 [Larcanum.GitInfo](/docs/Larcanum.GitInfo) [](https://www.nuget.org/packages/Larcanum.GitInfo/)  2025-01-17
- 10 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
+ 10 [LinqGen.Generator](/docs/LinqGen.Generator) [](https://www.nuget.org/packages/LinqGen.Generator/)[](https://www.nuget.org/packages/LinqGen/)  2024-03-04
- 11 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
+ 11 [Pekspro.BuildInformationGenerator](/docs/Pekspro.BuildInformationGenerator) [](https://www.nuget.org/packages/Pekspro.BuildInformationGenerator/)  2024-07-19
- 12 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
+ 12 [PlantUmlClassDiagramGenerator](/docs/PlantUmlClassDiagramGenerator) [](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.SourceGenerator/)[](https://www.nuget.org/packages/PlantUmlClassDiagramGenerator.Attributes/)  2024-02-20
- 13 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
+ 13 [RSCG_AMS](/docs/RSCG_AMS) [](https://www.nuget.org/packages/RSCG_AMS/)  2023-04-16
- 14 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
+ 14 [RSCG_ExportDiagram](/docs/RSCG_ExportDiagram) [](https://github.com/ignatandrei/RSCG_ExportDiagram)  2024-08-01
- 15 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
+ 15 [RSCG_FunctionsWithDI](/docs/RSCG_FunctionsWithDI) [](https://www.nuget.org/packages/RSCG_FunctionsWithDI/)  2023-04-16
- 16 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
+ 16 [RSCG_NameGenerator](/docs/RSCG_NameGenerator) [](https://www.nuget.org/packages/RSCG_NameGenerator/)  2024-08-25
- 17 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
+ 17 [RSCG_TimeBombComment](/docs/RSCG_TimeBombComment) [](https://www.nuget.org/packages/RSCG_TimeBombComment/)  2023-04-16
- 18 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
+ 18 [RSCG_Wait](/docs/RSCG_Wait) [](https://www.nuget.org/packages/RSCG_WaitAndOptions/)  2024-02-21
- 19 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
+ 19 [ShadowWriterProjectInfo](/docs/ShadowWriterProjectInfo) [](https://www.nuget.org/packages/ShadowWriter/)  2025-07-27
- 20 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+ 20 [ThisAssembly](/docs/ThisAssembly) [](https://www.nuget.org/packages/ThisAssembly)  2023-04-16
- 21 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
+ 21 [ThisAssembly.Constants](/docs/ThisAssembly.Constants) [](https://www.nuget.org/packages/ThisAssembly.Constants/)  2024-07-18
+
+ 22 [ThisAssembly.Metadata](/docs/ThisAssembly.Metadata) [](https://www.nuget.org/packages/ThisAssembly.Metadata/)  2024-07-20
### See category
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/Bennewitz.Ninja.AutoVersioning.md b/v2/rscg_examples_site/docs/RSCG-Examples/Bennewitz.Ninja.AutoVersioning.md
new file mode 100644
index 000000000..b819a1f2b
--- /dev/null
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/Bennewitz.Ninja.AutoVersioning.md
@@ -0,0 +1,380 @@
+---
+sidebar_position: 2770
+title: 277 - Bennewitz.Ninja.AutoVersioning
+description: Generating build version numbers for .NET projects
+slug: /Bennewitz.Ninja.AutoVersioning
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import TOCInline from '@theme/TOCInline';
+import SameCategory from '../Categories/_PrimitiveEnhancementProject.mdx';
+
+# Bennewitz.Ninja.AutoVersioning by Brian Bennewitz
+
+
+
+
+## NuGet / site data
+[](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/)
+[](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning)
+
+
+## Details
+
+### Info
+:::info
+
+Name: **Bennewitz.Ninja.AutoVersioning**
+
+Assembly info incremental source generator.
+
+Author: Brian Bennewitz
+
+NuGet:
+*https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/*
+
+
+You can find more details at https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning
+
+Source: https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning
+
+:::
+
+### Author
+:::note
+Brian Bennewitz
+
+:::
+
+## Original Readme
+:::note
+
+### Bennewitz.Ninja.AutoVersioning
+
+A [Roslyn incremental source generator](https://learn.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/source-generators-overview) that injects assembly metadata attributes and build-time constants into .NET projects at compile time — no `AssemblyInfo.cs`, no disk writes, full IDE caching.
+
+[](https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning)
+[](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/actions/workflows/ci.yml)
+
+###### Requirements
+
+.NET SDK 6.0 or later (requires Roslyn 4.0+ for `IIncrementalGenerator` support). The consuming project may target any framework — `.NET Framework 4.x`, `.NET Standard`, `.NET 6+`, etc.
+
+###### Quick Start
+
+**1. Add the package:**
+
+```xml
+
+```
+
+**2. Enable the generator** in your root `Directory.Build.props` (or any `.props` / `.csproj` imported by your build):
+
+```xml
+
+ true
+ YourCompany
+ YourProduct
+
+
+ $(GITHUB_SHA)
+ $(GITHUB_ACTIONS)
+ $(MY_VERSION_VAR)
+
+```
+
+> **Note:** The package's auto-imported `Build.props` automatically suppresses the 8 SDK-generated attributes that conflict with this generator (e.g. `AssemblyVersion`, `AssemblyCopyright`). It uses granular per-attribute suppressions rather than `false`, which means `InternalsVisibleTo` and all other SDK-generated attributes continue to work normally. Do **not** add `false` yourself — it will break `InternalsVisibleTo`.
+
+A ready-to-use template is available at [`Directory.Build.props.template`](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/Directory.Build.props.template).
+
+**3. Build.** The generator runs automatically — no further setup needed.
+
+> **Tip:** View the generated files in your IDE under `Dependencies → Analyzers → *SourceGenerators`.
+
+---
+
+###### Generated Output
+
+Given a build on 2026-04-29 at 14:35 UTC for company `Acme Corp`, product `Acme App`, commit `abc1234def`, and public version `3.1.0`:
+
+######### `AutoVersionedAssemblyInfo.g.cs`
+
+```csharp
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyDescription("Assembly Version: 2026.2.429.1435")]
+[assembly: AssemblyConfiguration("Release")]
+[assembly: AssemblyCompany("Acme Corp")]
+[assembly: AssemblyProduct("Acme App v2026.2.429.1435")]
+[assembly: AssemblyCopyright("Copyright 2026 [Release]")]
+[assembly: AssemblyVersion("2026.2.429.1435")]
+[assembly: AssemblyFileVersion("2026.2.429.1435")]
+[assembly: AssemblyInformationalVersion("Commit♥: abc1234def")]
+[assembly: AssemblyMetadata("CommitSha", "abc1234def")]
+[assembly: AssemblyMetadata("GITHUB_SHA", "abc1234def")]
+[assembly: AssemblyMetadata("PublicVersion", "3.1.0")]
+```
+
+######### `DirectoryBuildInfo.g.cs`
+
+```csharp
+//
+namespace Bennewitz.Ninja.AutoVersioning
+{
+ /// Build-time constants generated by the source generator.
+ public static class DirectoryBuildInfo
+ {
+ public const string BuildRelease = "Version 2026.2.429.1435 [built 4/29/2026 2:35:00 PM (UTC)]";
+ }
+}
+```
+
+Use `DirectoryBuildInfo.BuildRelease` wherever you need the build version at runtime — error trackers, log enrichment, health endpoints — without reading environment variables.
+
+---
+
+###### Configuration Reference
+
+| MSBuild Property | Description | Required |
+|---|---|---|
+| `GenerateAutoVersionedAssemblyInfo` | Set to `true` to enable the generator | **Yes** |
+| `AssemblyCompany` | Value for `[assembly: AssemblyCompany(...)]` | **Yes** |
+| `AssemblyProduct` | Value for `[assembly: AssemblyProduct(...)]` | **Yes** |
+| `CopyrightHolder` | Name shown in the copyright attribute — defaults to `AssemblyCompany` if omitted | No |
+| `CommitSha` | Git commit SHA | No |
+| `IsContinuousIntegration` | `true` on CI runs | No |
+| `PublicVersion` | Your app's public-facing version string | No |
+| `Configuration` | `Debug` / `Release` — set automatically by MSBuild | Auto |
+| `BuildTimestamp` | Build start time in `yyyyMMddHHmmss` format — captured automatically at MSBuild evaluation time (before any project compiles), ensuring a consistent version across all projects in a multi-project solution build. Override on CI for an exact guarantee: `dotnet build -p:BuildTimestamp=$(date +%Y%m%d%H%M%S)` | Auto |
+
+######### CI Provider Mappings
+
+| Provider | Commit SHA | CI flag |
+|---|---|---|
+| GitHub Actions | `$(GITHUB_SHA)` | `$(GITHUB_ACTIONS)` |
+| GitLab CI | `$(CI_COMMIT_SHA)` | `$(GITLAB_CI)` |
+| Bitbucket Pipelines | `$(BITBUCKET_COMMIT)` | `$(CI)` |
+
+######### Version Format
+
+The generator uses **CalVer**: `YEAR.QUARTER.MMDD.HHmm`
+
+| Part | Example | Meaning |
+|---|---|---|
+| Major | `2026` | Calendar year |
+| Minor | `2` | Quarter (1–4) |
+| Build | `429` | Month + day (`MMdd` as integer) |
+| Revision | `1435` | Hour + minute (`HHmm` as integer) |
+
+---
+
+###### How It Works
+
+This is a modern C# `IIncrementalGenerator`. Compared to legacy `ISourceGenerator` approaches it:
+
+- Runs **entirely in-memory** — zero files written to disk
+- Uses the **Roslyn caching pipeline** — the IDE (Rider, Visual Studio) only re-runs the generator when its inputs change, eliminating background compilation loops
+- Reads MSBuild properties **via `AnalyzerConfigOptionsProvider`** — safe, no direct environment variable reads
+
+The package auto-imports `Build.props` via NuGet, which declares `CompilerVisibleProperty` items and suppresses the SDK's default `AssemblyInfo` generation (preventing CS0579 duplicate attribute errors when the generator is enabled).
+
+######### Timestamp Consistency in Multi-Project Builds
+
+`BuildTimestamp` keeps the version consistent across every project in a solution build. See [`docs/MultiProjectBuildTimestamps.md`](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/docs/MultiProjectBuildTimestamps.md) for how it works and what alternative approaches were considered.
+
+> **TL;DR:** For CI, or any local build where an exact guarantee matters more than convenience, use `-p:BuildTimestamp=...` to fix the value explicitly instead of relying on evaluation-time capture. Ready-to-use wrappers are available at [`Build.ps1.template`](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/Build.ps1.template) (Windows/PowerShell 7+) and [`Build.sh.template`](https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning/Build.sh.template) (Linux/macOS/bash).
+
+######### Diagnostics
+
+| ID | Severity | Description |
+|---|---|---|
+| `BAUTOVERSIONING00` | Warning | Generator is installed but `GenerateAutoVersionedAssemblyInfo` is not set to `true` (single-line signal) |
+| `BAUTOVERSIONING01` | Warning | Generator threw an unexpected exception |
+| `BAUTOVERSIONING02` | Error | `AssemblyCompany` is not configured |
+| `BAUTOVERSIONING03` | Error | `AssemblyProduct` is not configured |
+| `BAUTOVERSIONING04` | Warning | Multi-line setup snippet emitted alongside BAUTOVERSIONING00 — shows the required `Directory.Build.props` configuration |
+
+---
+
+###### Building Locally
+
+Requires PowerShell 7+ and the .NET SDK.
+
+```powershell
+./Pack.ps1
+```
+
+The script prompts for a version (defaults to CalVer `YYYY.Q.MMDD`) and produces `.nupkg` files in `packages/Debug/` and `packages/Release/`.
+
+---
+
+###### License
+
+MIT © 2026 Brian Bennewitz
+
+
+:::
+
+### About
+:::note
+
+Generating build version numbers for .NET projects
+
+
+:::
+
+## How to use
+
+### Example (source csproj, source files)
+
+
+
+
+
+This is the CSharp Project that references **Bennewitz.Ninja.AutoVersioning**
+```xml showLineNumbers {11}
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+ true
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ AOM Company
+ Andrei Ignat Product
+
+
+ $(GITHUB_SHA)
+ $(GITHUB_ACTIONS)
+ $(MY_VERSION_VAR)
+
+
+ true
+ $(BaseIntermediateOutputPath)\GX
+
+
+
+
+```
+
+
+
+
+
+ This is the use of **Bennewitz.Ninja.AutoVersioning** in *Program.cs*
+
+```csharp showLineNumbers
+using Bennewitz.Ninja.AutoVersioning;
+
+Console.WriteLine("Hello, World!");
+Console.WriteLine(DirectoryBuildInfo.BuildRelease);
+```
+
+
+
+
+### Generated Files
+
+Those are taken from $(BaseIntermediateOutputPath)\GX
+
+
+
+
+```csharp showLineNumbers
+//------------------------------------------------------------------------------
+//
+// This code was automatically generated by Andrei Ignat Product version 2026.3.716.1852;
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+using System.CodeDom.Compiler;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+[assembly: AssemblyDescription("Assembly Version: 2026.3.716.1852")]
+[assembly: AssemblyConfiguration("Debug")]
+[assembly: AssemblyCompany("AOM Company")]
+[assembly: AssemblyProduct("Andrei Ignat Product v2026.3.716.1852")]
+[assembly: AssemblyCopyright("Copyright 2026 [Debug]")]
+[assembly: AssemblyVersion("2026.3.716.1852")]
+[assembly: AssemblyFileVersion("2026.3.716.1852")]
+[assembly: AssemblyInformationalVersion("Built with ♥")]
+```
+
+
+
+
+```csharp showLineNumbers
+
+//
+namespace Bennewitz.Ninja.AutoVersioning
+{
+ ///
+ /// Build-time constants generated by the source generator.
+ ///
+ public static class DirectoryBuildInfo
+ {
+ /// The build version string calculated at compile time.
+ public const string BuildRelease = "Version 2026.3.716.1852 [built 7/16/2026 6:52:32 PM (GST)]";
+ }
+}
+```
+
+
+
+
+## Useful
+
+### Download Example (.NET C#)
+
+:::tip
+
+[Download Example project Bennewitz.Ninja.AutoVersioning ](/sources/Bennewitz.Ninja.AutoVersioning.zip)
+
+:::
+
+
+### Share Bennewitz.Ninja.AutoVersioning
+
+
+
+https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning
+
+
+
diff --git a/v2/rscg_examples_site/docs/RSCG-Examples/index.md b/v2/rscg_examples_site/docs/RSCG-Examples/index.md
index 58c3dde48..797c717cc 100644
--- a/v2/rscg_examples_site/docs/RSCG-Examples/index.md
+++ b/v2/rscg_examples_site/docs/RSCG-Examples/index.md
@@ -1,7 +1,7 @@
---
sidebar_position: 30
-title: 276 RSCG list by category
-description: 276 RSCG list by category
+title: 277 RSCG list by category
+description: 277 RSCG list by category
slug: /rscg-examples
---
@@ -725,7 +725,7 @@ import DocCardList from '@theme/DocCardList';
## EnhancementProject
- Expand EnhancementProject =>examples:21
+ Expand EnhancementProject =>examples:22
@@ -831,6 +831,11 @@ import DocCardList from '@theme/DocCardList';
[AssemblyMetadata.Generators](/docs/AssemblyMetadata.Generators)
+
+
+
+[Bennewitz.Ninja.AutoVersioning](/docs/Bennewitz.Ninja.AutoVersioning)
+
@@ -1992,6 +1997,8 @@ flowchart LR;
EnhancementProject--> AssemblyMetadata.Generators((AssemblyMetadata.Generators))
+ EnhancementProject--> Bennewitz.Ninja.AutoVersioning((Bennewitz.Ninja.AutoVersioning))
+
Enum--> NetEscapades.EnumGenerators((NetEscapades.EnumGenerators))
Enum--> EnumClass((EnumClass))
diff --git a/v2/rscg_examples_site/docs/about.md b/v2/rscg_examples_site/docs/about.md
index 098ca6746..cb2cbce29 100644
--- a/v2/rscg_examples_site/docs/about.md
+++ b/v2/rscg_examples_site/docs/about.md
@@ -6,7 +6,7 @@ title: About
## Content
You will find here code examples
-of 276 Roslyn Source Code Generator (RSCG)
+of 277 Roslyn Source Code Generator (RSCG)
that can be useful for you. That means, you will write more elegant and concise code - even if the generators code is not always nice to look.
## Are those examples ready for production?
diff --git a/v2/rscg_examples_site/docs/indexRSCG.md b/v2/rscg_examples_site/docs/indexRSCG.md
index d1bb99bd2..2010727bb 100644
--- a/v2/rscg_examples_site/docs/indexRSCG.md
+++ b/v2/rscg_examples_site/docs/indexRSCG.md
@@ -7,9 +7,9 @@ slug: /List-of-RSCG
import useBaseUrl from '@docusaurus/useBaseUrl';
-## 276 RSCG with examples in descending chronological order
+## 277 RSCG with examples in descending chronological order
-This is the list of 276 ( 16 from Microsoft) RSCG with examples
+This is the list of 277 ( 16 from Microsoft) RSCG with examples
[See by category](/docs/rscg-examples) [See as json](/exports/RSCG.json) [See as Excel](/exports/RSCG.xlsx)
@@ -20,6 +20,7 @@ This is the list of 276 ( 16 from Microsoft) RSCG with examples
| No | Name | Date | Category |
| --------- | ----- | ---- | -------- |
+|277| [Bennewitz.Ninja.AutoVersioning by Brian Bennewitz ](/docs/Bennewitz.Ninja.AutoVersioning)|2026-07-04 => 04 July 2026 | [EnhancementProject](/docs/Categories/EnhancementProject) |
|276| [TinyBDD.MSTest by Jerrett Davis ](/docs/TinyBDD.MSTest)|2026-07-03 => 03 July 2026 | [Tests](/docs/Categories/Tests) |
|275| [Porticle.Enumly by Carsten Jendro ](/docs/Porticle.Enumly)|2026-07-02 => 02 July 2026 | [Enum](/docs/Categories/Enum) |
|274| [Dirge by Kazuki Kohzuki ](/docs/Dirge)|2026-07-01 => 01 July 2026 | [Disposer](/docs/Categories/Disposer) |
diff --git a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
index 0cd686d1b..aa7c60932 100644
--- a/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
+++ b/v2/rscg_examples_site/src/components/HomepageFeatures/index.js
@@ -4,7 +4,7 @@ import styles from './styles.module.css';
const FeatureList = [
{
-title: '276 Examples (16 from MSFT)',
+title: '277 Examples (16 from MSFT)',
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
description: (
<>
diff --git a/v2/rscg_examples_site/static/exports/RSCG.json b/v2/rscg_examples_site/static/exports/RSCG.json
index e60d5dac8..e5eb212ef 100644
--- a/v2/rscg_examples_site/static/exports/RSCG.json
+++ b/v2/rscg_examples_site/static/exports/RSCG.json
@@ -2209,6 +2209,14 @@
"Source": "https://github.com/JerrettDavis/TinyBDD",
"Category": "Tests",
"AddedOn": "2026-07-03T00:00:00"
+ },
+ {
+ "Name": "Bennewitz.Ninja.AutoVersioning",
+ "Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/Bennewitz.Ninja.AutoVersioning",
+ "NuGet": "https://www.nuget.org/packages/Bennewitz.Ninja.AutoVersioning/",
+ "Source": "https://github.com/JanusMael/Bennewitz.Ninja.AutoVersioning",
+ "Category": "EnhancementProject",
+ "AddedOn": "2026-07-04T00:00:00"
}
]
}
\ No newline at end of file
diff --git a/v2/rscg_examples_site/static/exports/RSCG.xlsx b/v2/rscg_examples_site/static/exports/RSCG.xlsx
index 292fd9cef..b31bd8353 100644
Binary files a/v2/rscg_examples_site/static/exports/RSCG.xlsx and b/v2/rscg_examples_site/static/exports/RSCG.xlsx differ
diff --git a/v2/rscg_examples_site/static/sources/Bennewitz.Ninja.AutoVersioning.zip b/v2/rscg_examples_site/static/sources/Bennewitz.Ninja.AutoVersioning.zip
new file mode 100644
index 000000000..a5bd36e6d
Binary files /dev/null and b/v2/rscg_examples_site/static/sources/Bennewitz.Ninja.AutoVersioning.zip differ