Yet another MSBuild-on-Linux back-slash gotcha
Another variant of a known family of such issues, encountered as AltCover issue #49, the interesting tale of what you get when your MSBuild sets a task array parameter with
AssemblyExcludeFilter="$(AltCoverAssemblyExcludeFilter.Split('|'))"
and the value of AltCoverAssemblyExcludeFilter
is the-|xunit\.
; surprisingly, the answer is
the- xunit/.
There isn't even an explicit ItemList
in sight, and yet the '\' still gets interpreted as a path separator and "helpfully" *nix-ified. Doubling up the '\' via .Replace('\','\\')
ahead of the split doesn't escape the character -- you just get a '//' in the output, nor does escaping on the command line as the-|xunit%5C.
.
For the moment, with no obvious MSBuild level fix, I'm working around this by doing .Replace('\', %00)
and then converting the NUL back inside the custom MSBuild task.
No comments :
Post a Comment