diff --git a/lib/manager/nuget/extract.spec.ts b/lib/manager/nuget/extract.spec.ts
index 40cbeb814a95e7c6d1c2ad55772887181fb77a1f..65809afa0be35e3a57f9f1e68ed09fa252fda97d 100644
--- a/lib/manager/nuget/extract.spec.ts
+++ b/lib/manager/nuget/extract.spec.ts
@@ -1,5 +1,4 @@
 import { readFileSync } from 'fs';
-import path from 'path';
 import * as upath from 'upath';
 import { ExtractConfig } from '../common';
 import { extractPackageFile } from './extract';
@@ -9,7 +8,7 @@ describe('lib/manager/nuget/extract', () => {
     let config: ExtractConfig;
     beforeEach(() => {
       config = {
-        localDir: path.resolve('lib/manager/nuget/__fixtures__'),
+        localDir: upath.resolve('lib/manager/nuget/__fixtures__'),
       };
     });
     it('returns empty for invalid csproj', async () => {
diff --git a/lib/manager/nuget/util.ts b/lib/manager/nuget/util.ts
index 7508d6e7dbf4fab4775f7b8468a266415e2ad549..566de7e7100bddf2370ec447f2ff68f8767fcdb7 100644
--- a/lib/manager/nuget/util.ts
+++ b/lib/manager/nuget/util.ts
@@ -25,12 +25,17 @@ export async function determineRegistries(
 ): Promise<Registry[] | undefined> {
   // Valid file names taken from https://github.com/NuGet/NuGet.Client/blob/f64621487c0b454eda4b98af853bf4a528bef72a/src/NuGet.Core/NuGet.Configuration/Settings/Settings.cs#L34
   const nuGetConfigFileNames = ['nuget.config', 'NuGet.config', 'NuGet.Config'];
+  // normalize paths, otherwise startsWith can fail because of path delimitter mismatch
+  const baseDir = upath.normalizeSafe(localDir);
   const nuGetConfigPath = await findUp(nuGetConfigFileNames, {
-    cwd: upath.dirname(upath.join(localDir, packageFile)),
+    cwd: upath.dirname(upath.join(baseDir, packageFile)),
     type: 'file',
   });
 
-  if (nuGetConfigPath?.startsWith(localDir) !== true) {
+  if (
+    !nuGetConfigPath ||
+    upath.normalizeSafe(nuGetConfigPath).startsWith(baseDir) !== true
+  ) {
     return undefined;
   }