diff --git a/src/Kiota.Builder/Lock/LockManagementService.cs b/src/Kiota.Builder/Lock/LockManagementService.cs index db4a17c30d..a38bb60910 100644 --- a/src/Kiota.Builder/Lock/LockManagementService.cs +++ b/src/Kiota.Builder/Lock/LockManagementService.cs @@ -83,7 +83,12 @@ private static string GetRelativeDescriptionPath(string descriptionPath, string { if (IsDescriptionLocal(descriptionPath) && Path.GetDirectoryName(lockFilePath) is string lockFileDirectoryPath) - return Path.GetRelativePath(lockFileDirectoryPath, descriptionPath); + { + var relativePath = Path.GetRelativePath(lockFileDirectoryPath, descriptionPath); + if (Path.DirectorySeparatorChar != '/') + relativePath = relativePath.Replace(Path.DirectorySeparatorChar, '/'); + return relativePath; + } return descriptionPath; } /// diff --git a/tests/Kiota.Builder.Tests/Lock/LockManagementServiceTests.cs b/tests/Kiota.Builder.Tests/Lock/LockManagementServiceTests.cs index a00aafe3ff..f88c264885 100644 --- a/tests/Kiota.Builder.Tests/Lock/LockManagementServiceTests.cs +++ b/tests/Kiota.Builder.Tests/Lock/LockManagementServiceTests.cs @@ -50,7 +50,7 @@ public async Task UsesRelativePaths() var outputDirectory = Path.Combine(tmpPath, "output"); Directory.CreateDirectory(outputDirectory); await lockManagementService.WriteLockFileAsync(outputDirectory, lockFile); - Assert.Equal($"..{Path.DirectorySeparatorChar}information{Path.DirectorySeparatorChar}description.yml", lockFile.DescriptionLocation, StringComparer.OrdinalIgnoreCase); + Assert.Equal("../information/description.yml", lockFile.DescriptionLocation, StringComparer.OrdinalIgnoreCase); } [Fact] public async Task DeletesALock()