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);
        }
Example #2
0
        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
                        );
                }
            }
        }
Example #3
0
 private string ConvertToRelativePath(EmbeddedResourceSet source, string resourceName)
 {
     return(resourceName.Substring(source.ResourceNamespace.Length + 1));
 }