string EscapedRelativePathFor(string file) { var projectDir = ProjectDirectory.Replace('/', '\\'); file = file.Replace('/', '\\'); var path = SkipPathPrefix(file, projectDir); var packageInfo = m_AssemblyNameProvider.FindForAssetPath(path.Replace('\\', '/')); if (packageInfo != null) { // We have to normalize the path, because the PackageManagerRemapper assumes // dir seperators will be os specific. var absolutePath = Path.GetFullPath(NormalizePath(path)).Replace('/', '\\'); path = SkipPathPrefix(absolutePath, projectDir); } return(SecurityElement.Escape(path)); }