diff --git a/lib/modules/manager/nuget/update.spec.ts b/lib/modules/manager/nuget/update.spec.ts
index ecf80a4957306de07f5ecae8c3f9dc4b7dcb70c1..1701d0625c35e51e8bb54f029ab6a2be6883586d 100644
--- a/lib/modules/manager/nuget/update.spec.ts
+++ b/lib/modules/manager/nuget/update.spec.ts
@@ -7,6 +7,10 @@ const minimumContent =
   '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><Version>1</Version></PropertyGroup></Project>';
 const prereleaseContent =
   '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><Version>1.0.0-1</Version></PropertyGroup></Project>';
+const issue23526InitialContent =
+  '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><Version>4.9.0</Version></PropertyGroup></Project>';
+const issue23526ExpectedContent =
+  '<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><Version>4.10.0</Version></PropertyGroup></Project>';
 
 describe('modules/manager/nuget/update', () => {
   describe('bumpPackageVersion', () => {
@@ -36,6 +40,21 @@ describe('modules/manager/nuget/update', () => {
       expect(bumpedContent).toEqual(bumpedContent2);
     });
 
+    it('issue 23526 does not bump version incorrectly', () => {
+      const { bumpedContent } = bumpPackageVersion(
+        issue23526InitialContent,
+        '4.9.0',
+        'minor'
+      );
+      const { bumpedContent: bumpedContent2 } = bumpPackageVersion(
+        bumpedContent!,
+        '4.9.0',
+        'minor'
+      );
+
+      expect(bumpedContent2).toEqual(issue23526ExpectedContent);
+    });
+
     it('does not bump version if version is not a semantic version', () => {
       const { bumpedContent } = bumpPackageVersion(
         minimumContent,
diff --git a/lib/modules/manager/nuget/update.ts b/lib/modules/manager/nuget/update.ts
index 4921abdd1e7600d09490083534b6b8bcf2915aea..ad258f2ff3d08babfe0b10eaa72e067bf8f16364 100644
--- a/lib/modules/manager/nuget/update.ts
+++ b/lib/modules/manager/nuget/update.ts
@@ -31,14 +31,23 @@ export function bumpPackageVersion(
   try {
     const project = new XmlDocument(content);
     const versionNode = project.descendantWithPath('PropertyGroup.Version')!;
+    const currentProjVersion = versionNode.val;
     const startTagPosition = versionNode.startTagPosition;
-    const versionPosition = content.indexOf(versionNode.val, startTagPosition);
+    const versionPosition = content.indexOf(
+      currentProjVersion,
+      startTagPosition
+    );
 
     const newProjVersion = semver.inc(currentValue, bumpVersion as ReleaseType);
     if (!newProjVersion) {
       throw new Error('semver inc failed');
     }
 
+    if (currentProjVersion === newProjVersion) {
+      logger.debug('Version was already bumped');
+      return { bumpedContent };
+    }
+
     logger.debug(`newProjVersion: ${newProjVersion}`);
     bumpedContent = replaceAt(
       content,
@@ -46,12 +55,6 @@ export function bumpPackageVersion(
       currentValue,
       newProjVersion
     );
-
-    if (bumpedContent === content) {
-      logger.debug('Version was already bumped');
-    } else {
-      logger.debug('project version bumped');
-    }
   } catch (err) {
     logger.warn(
       {