Skip to content

This project is used for automatic version management of .NET projects (WinUI, .NET MAUI, Blazor, Console, WPF and Xamarin Forms) with Git Hooks.

License

Notifications You must be signed in to change notification settings

owndev/Versioning.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Versioning.NET

GitHub stars GitHub forks GitHub watchers GitHub top language GitHub contributors GitHub License

Versioning.NET is a collection of PowerShell-based Git hooks for automatic versioning of .NET projects, including WinUI, .NET MAUI, Blazor, Console, WPF, and Xamarin Forms.
All hooks run standalone scripts that manage build numbers, release notes, and update your README file accordingly.

Features ⭐

  • 🔢 Automatic Versioning: Appends the current build version to every Git commit.
  • 📄 Release Notes Generation: Automatically updates a releasenotes.md file in a markdown table format.
  • 📖 README Integration: Adds the latest build information under the # Buildversion section of your README.md.
  • 🛠️ Multi-Project Support: Works with WinUI, .NET MAUI, Blazor Web App, Console Apps, WPF, and Xamarin Forms.
  • Simple Setup: No external dependencies — just PowerShell and Git.

Prerequisites 🔗

  • PowerShell installed and available in the system path.
  • Git installed and initialized in your repository.

Installation 🚀

  1. Copy the Git Hooks:

    • Place all provided hook files into your repository’s .git/hooks directory.
  2. Project Preparation:

    • Create a find.me file in every project directory containing a .csproj file.
    • For Xamarin Forms, create an additional find.me.android in the Android project directory.
  3. Optional – README Setup:

    • Add a # Buildversion section in your README.md to enable automatic updates of build versions directly into your README.

How It Works ⚙️

  • When you commit changes:
    • The script automatically injects the build version into the commit message following the format:
      V<MAJOR>.<MINOR>.<PATCH>.<BUILD> - Commit Message
      
      Example:
      V1.0.2.25 - Added user authentication feature
      
    • It updates or creates the releasenotes.md file with a new markdown table entry.
    • If your README.md contains a # Buildversion section, it appends the latest build version and notes directly into it.

Supported Project Types 📚

Project Type Requirements
WinUI find.me in the project folder
.NET MAUI find.me in the project folder (Windows and Android only)
Blazor Web App find.me in the server project folder
Console Apps find.me in the project folder
WPF find.me in the project folder
Xamarin Forms find.me in the shared project folder and find.me.android in the Android project folder

Example 📋

Commit Message Example:

V1.2.5.18 - Added advanced logging system

README.md Example with # Buildversion section:

# Buildversion

| Version | Release Notes |
|--|--|
| 1.2.5.18 | Added advanced logging system |
| 1.2.5.17 | Improved database migration scripts |

Contribute 💪

Contributions are very welcome! Please open issue, submit pull requests, or propose features you would like to see.

License 📜

This project is licensed under the Apache License 2.0 - see the LICENSE file for details. 📄

Support 💬

If you have any questions, suggestions, or need assistance, please open an issue to connect with us! 🤝

Star History 💫

Star History Chart

Created by owndev - Bringing automation to your .NET projects! 🚀

About

This project is used for automatic version management of .NET projects (WinUI, .NET MAUI, Blazor, Console, WPF and Xamarin Forms) with Git Hooks.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project