Here is a list of things to make sure to remember before publishing your Visual Studio extension.
Add the Microsoft.VisualStudio.SDK.Analyzers NuGet package to your VSIX project, which will help you discover and fix common violations of best practices
All extensions should have an icon associated with it. Make sure the icon is a high-quality .png file with the size 128x128 pixels in 96 DPI or more. After adding the icon to your VSIX project, register it in the .vsixmanifest file as both the Icon and Preview image.
This license will be shown on the Marketplace, in the VSIX installer and in the Extensions and Updates... dialog. One should always be specified to set the expectations for the users. Use choosealicense.com to help find the right license for you.
This is one of the most important things you should do to make your extension successful. A good description consist of:
- Screenshots/animated GIFs of the UI added by the extension
- Detailed description of the individual features
- Links to more details if applicable
Visual Studio ships with thousands of icons which are available in the KnownMonikers collection. When adding icons to command buttons, see if you can use the existing KnownMonikers icons since they are part of a design language familiar to the Visual Studio users. Here's a full list of KnownMonikers and grab the KnownMonikers Explorer extension to find the right one for your scenarios.
Make sure that all buttons, menus, toolbars and tool windows are only visible by default when the user is in the right context to use them. There are some rules of thumb to follow:
- Don't ever add a new top level menu (next to File, Edit, etc.)
- No buttons, menus and toolbars should be visible when they don't apply
- Use VisibilityConstraints to toggle visibility of commands
It can be tempting to support versions of Visual Studio all the way back to Visual Studio 2010 to ensure that everyone can use your new extension. The problem with that is that by doing so, it is no longer possible to use any APIs introduced later than that minimum version the extension supports. Often, those new APIs are important and help improve performance and reliability of both your extension as well as Visual Studio itself.
Here are our recommendations for deciding what versions of Visual Studio to support:
- Support only the previous and current version of Visual Studio - don't support older versions if possible
- Don't specify an open ended version range. E.g.
[15.0,)
"Show in Help/About" - is there something equivalent for MEF editor extensions - where there is no Package?