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; }