I am writing a compiler task, targeting both Windows and Linux, and, from looking at MSBuild sources, realize how many of very important path massaging APIs are internal. Only FileUtilities.GetFolderPath is in fact exposed as public. I have to essentially recreate (inefficiently) such functions as NormalizePath(), which is highly optimized, and a whole host of convenience helpers, such as IsTrailingSlash, DeleteNoThrow etc etc.
Please consider exposing as much of these as reasonable, and perhaps other utility API from Shared/, through the Microsoft.Build.Utilities.Core assembly.