/PrivateGalleryCreator

Create private extension galleries for Visual Studio

Primary LanguageC#OtherNOASSERTION

Create VSIX private gallery ATOM feed

Build status

Download from releases


This project creates a private extension gallery that can be consumed by Visual Studio to side-load extensions that are not on the official marketplace.

You may want to use this to provide a marketplace of private extensions for testing purposes or for extensions that are for internal use only.

This project is a simple .exe file that will generate a valid ATOM file from a directory of .vsix files.

Getting started

Place all the VSIX files you want to include in the private gallery in the same folder. Then download and add the PrivateGalleryCreator.exe file and place in the same folder. It should look similar to this:

Filesystem

Now 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:

Filesytem After

You 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.

You can now add the gallery to Visual Studio to have the extensions automatically show up.

Options

The URL should be the absolute path to the feed.xml file. The path can be a network share (e.g. \\mycompany\extensions\feed.xml).

Going to Tools -> Extensions and Updates... will now show the private gallery under the Online tab:

Extensions dialog

Watch option

You 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:

PrivateGalleryCreator.exe -w

The 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.

Name option

If you would like a custom gallery name (instead of "VSIX Gallery") you can use the --name option:

PrivateGalleryCreator.exe --name="My gallery name"

Output option

If you would like to have the output redirected (instead of the current directory) you can use the --output option:

PrivateGalleryCreator.exe --output=c:\your\path\yourfeed.xml

Input option

If you would like to have the input directory set custom (instead of the current directory) you can use the --input option:

PrivateGalleryCreator.exe --input=c:\your\input\path 

Recursive option

If you would like to have the all directories parsed for packages (instead of the current directory) you can use the --recursive option:

PrivateGalleryCreator.exe --recursive

Exclude option

If you would like to have the particular folders, filenames skipped (instead of the using all packages found) you can use the --exclude option:

PrivateGalleryCreator.exe --exclude=dontwantthis

Source option

By 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:

PrivateGalleryCreator.exe --source=c:\your\vsix\repository\

Terminate option

If you would like the application to exit immediately after processing VSIX files, use the --terminate option:

PrivateGalleryCreator.exe --terminate

Latest only option

By 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:

PrivateGalleryCreator.exe --latest-only

Good to know

  • Run the PrivateGalleryCreator.exe every time you add or update a .vsix in the directory
  • Visual Studio will by default auto-update extensions - including the ones from private galleries.
  • The feed support extensions for Visual Studio 2010 and newer
  • Use an extension to create the private gallery. See example extension here.

License

Apache 2.0