.NET Bump Version
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
Set a .NET project’s version to an exact literal value in every place that must agree with it: the MSBuild <Version>
(or <VersionPrefix> plus <VersionSuffix>) and, for a packaged Windows desktop app, the MSIX package identity
version. This skill never computes a version itself; it applies exactly the string it is given, after validating its
shape, and never commits, tags, builds or packages anything.
Purpose
iru-dotnet-bump-version is the .NET counterpart of iru-java-bump-version, iru-php-bump-version and the other
iru-<key>-bump-version skills. It works for a .NET library, a service or a Windows desktop app (WPF, WinUI 3,
Windows Forms) alike. An embedded, tested Python helper (with --list and --dry-run modes) rewrites the root
Directory.Build.props when it declares a version, otherwise every non-test *.csproj that does, plus the
<Identity Version="x.y.z.0"> of every tracked Package.appxmanifest and packaging/AppxManifest.xml — always the
four-part numeric value derived from the new version (pre-release suffix stripped, revision 0, as the Microsoft
Store requires). It rewrites files in place preserving their BOM and CRLF/LF line endings, never touches test projects, reports but never rewrites
explicit <AssemblyVersion>/<FileVersion> values, and refuses to write when the <Version> locations disagree
until the user confirms. Projects whose version comes from git (MinVer, Nerdbank.GitVersioning, GitVersion) are
reported and left unchanged. Step 5 of the skill is the authoritative statement of this catalog’s x.y.z-dev
development-version convention for callers such as iru-release.
Plugin
Shipped by the iru-dotnet plugin of the ai-catalog marketplace (install with /plugin install iru-dotnet@ai-catalog; see Plugins).
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
|
Yes |
The exact target version (e.g. |
None — the skill asks for it if omitted. |
|
No |
Whether to also update README/Antora version mentions ( |
Ask — once, after Step 3 shows such mentions exist. |
|
No |
The upcoming |
None — a development marker is then updated only if |
|
No |
When |
|
Outputs
-
Directory.Build.props(or each non-test*.csprojwhen it declares none):<Version>set to the new version, or<VersionPrefix>set toX.Y.Zand<VersionSuffix>to the suffix (empty for a release). -
Every tracked
Package.appxmanifestandpackaging/AppxManifest.xml:<Identity Version>set toX.Y.Z.0. -
Optionally, README/Antora version mentions mapped by release versus development marker, if
sync-fileswas accepted. -
A sanity check (
--listagreement anddotnet msbuild -getProperty:Version), skipped on a dry run. -
A report of every location with its old value, the new values, explicit
AssemblyVersion/FileVersionvalues left untouched, any MSIX identity that was out of step, and a warning to review the diff before committing. -
No commit or tag is created, and a committed
.appinstallerfile is reported but not rewritten.
Execution flow
Dependencies
Invokes
None — iru-dotnet-bump-version is a leaf skill; it only runs a python3 helper and sanity-check commands
(dotnet msbuild, git ls-files).
Invoked by
-
Release — Step 6, version bump for
windows-appanddotnetprojects (called once for the release value and once for the next development value), per thex.y.z-devconvention defined in this skill’s Step 5.
The scaffold written by Setup Windows App (the Directory.Build.props <Version> and the MSIX
identity versions) and the sync.yml workflow written by Setup Windows GitHub Workflows follow
the same convention, but neither invokes this skill.
Source
SKILL.md on GitHub — the file this page was generated from.