private string ConvertToRelativePath(EmbeddedResourceSet source, string resourceName) { resourceName = resourceName.Substring(source.ResourceNamespace.Length + 1); var pathParts = resourceName.Split('.'); if (pathParts.Length <= 2) { return(resourceName); } var folder = pathParts.Take(pathParts.Length - 2).Select(NormalizeFolderName).JoinAsString("/"); var fileName = pathParts[pathParts.Length - 2] + "." + pathParts[pathParts.Length - 1]; return(folder + "/" + fileName); }
private void AddResources(EmbeddedResourceSet source, Dictionary <string, EmbeddedResourceItem> resources) { foreach (var resourceName in source.Assembly.GetManifestResourceNames()) { if (!resourceName.StartsWith(source.ResourceNamespace)) { continue; } using (var stream = source.Assembly.GetManifestResourceStream(resourceName)) { var relativePath = ConvertToRelativePath(source, resourceName); var filePath = EmbeddedResourcePathHelper.NormalizePath(source.RootPath) + relativePath; resources[filePath] = new EmbeddedResourceItem( filePath, stream.GetAllBytes(), source.Assembly ); } } }
private string ConvertToRelativePath(EmbeddedResourceSet source, string resourceName) { return(resourceName.Substring(source.ResourceNamespace.Length + 1)); }