@@ -14,8 +14,54 @@ public static string ToJsonString(this object node)
1414 } ) ;
1515
1616 public static string ReplacePath ( this string str , TestConfixCommandline info , string name )
17- => str . Replace ( info . Directories . Content . Parent ! . FullName , $ "<<{ name } >>") ;
17+ {
18+ var path = info . Directories . Content . Parent ! . FullName ;
19+ var result = str ;
20+
21+ // Replace original path
22+ result = result . Replace ( path , $ "<<{ name } >>") ;
23+
24+ // On Windows, also replace forward-slash version and JSON-escaped versions
25+ if ( Path . DirectorySeparatorChar == '\\ ' )
26+ {
27+ var forwardSlashPath = path . Replace ( '\\ ' , '/' ) ;
28+ result = result . Replace ( forwardSlashPath , $ "<<{ name } >>") ;
29+
30+ // Handle JSON-escaped paths (backslashes doubled)
31+ var jsonEscapedBackslash = path . Replace ( "\\ " , "\\ \\ " ) ;
32+ result = result . Replace ( jsonEscapedBackslash , $ "<<{ name } >>") ;
33+
34+ // Handle JSON-escaped forward slash paths
35+ var jsonEscapedForward = forwardSlashPath . Replace ( "/" , "\\ /" ) ;
36+ result = result . Replace ( jsonEscapedForward , $ "<<{ name } >>") ;
37+ }
38+
39+ return result ;
40+ }
1841
1942 public static string ReplacePath ( this string str , TestMiddlewareContext info , string name )
20- => str . Replace ( info . Directories . Content . Parent ! . FullName , $ "<<{ name } >>") ;
43+ {
44+ var path = info . Directories . Content . Parent ! . FullName ;
45+ var result = str ;
46+
47+ // Replace original path
48+ result = result . Replace ( path , $ "<<{ name } >>") ;
49+
50+ // On Windows, also replace forward-slash version and JSON-escaped versions
51+ if ( Path . DirectorySeparatorChar == '\\ ' )
52+ {
53+ var forwardSlashPath = path . Replace ( '\\ ' , '/' ) ;
54+ result = result . Replace ( forwardSlashPath , $ "<<{ name } >>") ;
55+
56+ // Handle JSON-escaped paths (backslashes doubled)
57+ var jsonEscapedBackslash = path . Replace ( "\\ " , "\\ \\ " ) ;
58+ result = result . Replace ( jsonEscapedBackslash , $ "<<{ name } >>") ;
59+
60+ // Handle JSON-escaped forward slash paths
61+ var jsonEscapedForward = forwardSlashPath . Replace ( "/" , "\\ /" ) ;
62+ result = result . Replace ( jsonEscapedForward , $ "<<{ name } >>") ;
63+ }
64+
65+ return result ;
66+ }
2167}
0 commit comments