{"id":13594688,"url":"https://github.com/madskristensen/PrivateGalleryCreator","last_synced_at":"2025-04-09T07:33:39.418Z","repository":{"id":51237159,"uuid":"113505713","full_name":"madskristensen/PrivateGalleryCreator","owner":"madskristensen","description":"Create private extension galleries for Visual Studio","archived":false,"fork":false,"pushed_at":"2024-10-31T16:47:33.000Z","size":93,"stargazers_count":122,"open_issues_count":13,"forks_count":42,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T16:25:40.297Z","etag":null,"topics":["atom-feed","gallery","marketplace","visual-studio","vsix"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/madskristensen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"madskristensen"}},"created_at":"2017-12-07T22:38:46.000Z","updated_at":"2025-03-21T02:11:28.000Z","dependencies_parsed_at":"2023-10-14T16:29:36.665Z","dependency_job_id":"45509613-a9d1-4e97-bbe5-1dc48e672d91","html_url":"https://github.com/madskristensen/PrivateGalleryCreator","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskristensen%2FPrivateGalleryCreator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskristensen%2FPrivateGalleryCreator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskristensen%2FPrivateGalleryCreator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madskristensen%2FPrivateGalleryCreator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madskristensen","download_url":"https://codeload.github.com/madskristensen/PrivateGalleryCreator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247997885,"owners_count":21030696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom-feed","gallery","marketplace","visual-studio","vsix"],"created_at":"2024-08-01T16:01:37.602Z","updated_at":"2025-04-09T07:33:39.153Z","avatar_url":"https://github.com/madskristensen.png","language":"C#","funding_links":["https://github.com/sponsors/madskristensen"],"categories":["others","C#","C\\#"],"sub_categories":[],"readme":"# Create VSIX private gallery ATOM feed\n\n[![Build status](https://ci.appveyor.com/api/projects/status/o9t6axyr7n989v75?svg=true)](https://ci.appveyor.com/project/madskristensen/privategallerycreator)\n\nDownload from [releases](https://github.com/madskristensen/PrivateGalleryCreator/releases)\n\n-----------------------------\n\nThis project creates a [private extension gallery](https://learn.microsoft.com/en-us/visualstudio/extensibility/private-galleries) that can be consumed by Visual Studio to side-load extensions that are not on the official marketplace.\n\nYou may want to use this to provide a marketplace of private extensions for testing purposes or for extensions that are for internal use only.\n\nThis project is a simple .exe file that will generate a valid ATOM file from a directory of .vsix files.\n\n## Getting started\nPlace all the VSIX files you want to include in the private gallery in the same folder. Then download and add the [PrivateGalleryCreator.exe](https://ci.appveyor.com/project/madskristensen/privategallerycreator/build/artifacts) file and place in the same folder. It should look similar to this:\n\n![Filesystem](art/filesystem.png)\n\nNow double-click the *PrivateGalleryCreator.exe* to generate the ATOM feed. It will parse the .vsix files for the information needed and extract the icon files. Your folder should now look like this:\n\n![Filesytem After](art/filesytem-after.png)\n\nYou may not see the *Icons* folder if you don't have any icons registered in the VSIX files or if Windows Explorer doesn't show hidden files and folders. So, don't worry if you don't see it. The ATOM feed will still work.\n\nYou can now add the gallery to Visual Studio to have the extensions automatically show up.\n\n![Options](art/options.png)\n\nThe **URL** should be the absolute path to the *feed.xml* file. The path can be a network share (e.g. \\\\\\\\mycompany\\extensions\\feed.xml).\n\nGoing to **Tools -\u003e Extensions and Updates...** will now show the private gallery under the **Online** tab:\n\n![Extensions dialog](art/extension-dialog.png)\n\n## Watch option\nYou can make the app watch for changes to any .vsix files in the directory and automatically generate a new *feed.xml* file. To do that, call the exe with the `--watch` (`-w`) parameter like so:\n\n```cmd\nPrivateGalleryCreator.exe -w\n```\n\nThe console app will not shut down but continously watch the directory for any new, updated or deleted .vsix files. To stop watching, either close the console or hit *Ctrl+C* to cancel out.\n\n## Name option\nIf you would like a custom gallery name (instead of \"VSIX Gallery\") you can use the --name option:\n\n```cmd\nPrivateGalleryCreator.exe --name=\"My gallery name\"\n```\n\n## Output option\nIf you would like to have the output redirected (instead of the current directory) you can use the --output option:\n\n```cmd\nPrivateGalleryCreator.exe --output=c:\\your\\path\\yourfeed.xml\n```\n\n## Input option\nIf you would like to have the input directory set custom (instead of the current directory) you can use the --input option:\n\n```cmd\nPrivateGalleryCreator.exe --input=c:\\your\\input\\path \n```\n\n## Recursive option\nIf you would like to have the all directories parsed for packages (instead of the current directory) you can use the --recursive option:\n\n```cmd\nPrivateGalleryCreator.exe --recursive\n```\n\n## Exclude option\nIf you would like to have the particular folders, filenames skipped (instead of the using all packages found) you can use the --exclude option:\n\n```cmd\nPrivateGalleryCreator.exe --exclude=dontwantthis\n```\n\n## Source option\nBy default, the download source path used in the gallery will be the location where the .vsix files reside when running the PrivateGalleryCreator. If you intend to move the .vsix files after creating the feed, you can specify the intended download source path with the --source option:\n\n```cmd\nPrivateGalleryCreator.exe --source=c:\\your\\vsix\\repository\\\n```\n\n## Terminate option\nIf you would like the application to exit immediately after processing VSIX files, use the --terminate option:\n\n```cmd\nPrivateGalleryCreator.exe --terminate\n```\n\n## Latest only option\nBy default, any duplicate packages that are found will be processed, resulting in multiple versions of the same package in the feed. If you have a folder structure that retains previous versions of the packages, use the --latest-only option:\n\n```cmd\nPrivateGalleryCreator.exe --latest-only\n```\n\n## Good to know\n\n* Run the *PrivateGalleryCreator.exe* every time you add or update a .vsix in the directory\n* Visual Studio will by default auto-update extensions - including the ones from private galleries.\n* The feed support extensions for Visual Studio 2010 and newer\n* Use an extension to create the private gallery. See [example extension here](https://github.com/madskristensen/VsixGalleryExtension/blob/master/src/feed.pkgdef).\n\n## License\n[Apache 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadskristensen%2FPrivateGalleryCreator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadskristensen%2FPrivateGalleryCreator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadskristensen%2FPrivateGalleryCreator/lists"}