Ultra simple self-hosted extension gallery for Visual Studio 2010 and newer.
Offering a single click deployment and super easy configuration this solution provides a fully featured solution for the Extension Gallery feature available in Microsoft Visual Studio.
- Single self-contained executable. Execute it and you're up and running in seconds!
- File system based storage. No databases! All files and data are stored on the local file system.
- Self-hosted. No IIS, Apache, Ngix or other webserver configuration necessary.
- Offers all the same features as the built in official galleries. Download counting, star ratings, searching, auto-updating and so forth.
- Free!
❤️
Todo
Meanwhile please consult this MSDN document on the different options on installing a Private gallery in Visual Studio.
All configuration is stored in the config.ini
file that must sit in the same directory as the main service executable.
Todo
The service itself just works and is a completely self-contained hosting solution.
The .vsix
files, download and ratings data are stored in a subfolder of the main service executable (this subfolder is configurable). This makes taking backups and moving the service between machines as the entire folder contains the entire service current state.
root-folder
|--vsgallery.exe
|--config.ini
|--VsixStorage
|--atom.xml
|--First.vsix
|--Second.vsix
|--AndSoForth.vsix
This is the main entry point for the feed and serves up the Syndicate-Feed compatible Atom file containing all available extensions on the server. This URL should be used in Visual Studio.
See How to install into Visual Studio for more information.
Retrieves the rating value and vote count for a particular VSIX package by its ID. The return type is JSON.
Example return
{
"rating": 4.3,
"count": 19
}
Submitting rating values for a particular VSIX package by its ID. The post payload should be just raw string and contain a single floating point number on the range between [0,5].
JSON feed for the entire package catalog. Same data that is being fed through the atom feed but just in a handier JSON format.
This endpoint accepts uploads of .vsix files to the hosting service.
This project is made possible by the fantastic work done by the following projects.
Topshelf: Windows Service Hosting
Nancy: Embedded HTTP hosting
VSGallery.AtomGenerator: VSIX parsing logic
Ini-Parser: Configuration ini file parsing
Costura: Assembly merging
Nancy FileUploads: Async uploading of files