C#: Fix csproj not synced on file move/removal from FS dock
When NormalizePath was called with an absolute path (with drive letter) on Windows, it would prepend a file path separator to the path, e.g.: '\C:\Program Files\'. Apparently this was still accepted as a valid path by DotNetGlob and it stopped working when we switched to MSBuildGlob.
This commit is contained in:
parent
463879db56
commit
1db0395950
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace GodotTools.Core
|
namespace GodotTools.Core
|
||||||
{
|
{
|
||||||
|
@ -35,7 +36,17 @@ namespace GodotTools.Core
|
||||||
|
|
||||||
path = string.Join(Path.DirectorySeparatorChar.ToString(), parts).Trim();
|
path = string.Join(Path.DirectorySeparatorChar.ToString(), parts).Trim();
|
||||||
|
|
||||||
return rooted ? Path.DirectorySeparatorChar + path : path;
|
if (!rooted)
|
||||||
|
return path;
|
||||||
|
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
|
{
|
||||||
|
string maybeDrive = parts[0];
|
||||||
|
if (maybeDrive.Length == 2 && maybeDrive[1] == ':')
|
||||||
|
return path; // Already has drive letter
|
||||||
|
}
|
||||||
|
|
||||||
|
return Path.DirectorySeparatorChar + path;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly string DriveRoot = Path.GetPathRoot(Environment.CurrentDirectory);
|
private static readonly string DriveRoot = Path.GetPathRoot(Environment.CurrentDirectory);
|
||||||
|
|
Loading…
Reference in New Issue