Prerequisites
Before publishing, you need:- A completed extension ready for release
- An Azure DevOps account
- A Personal Access Token (PAT) with marketplace permissions
- The
vsce(Visual Studio Code Extension Manager) CLI tool
Installing vsce
Install the Visual Studio Code Extension Manager globally:vsce is the official tool for packaging and publishing VS Code extensions. It validates your extension and handles marketplace uploads.Creating a Publisher
Create Azure DevOps Account
Sign up at dev.azure.com if you don’t have an account
Create Personal Access Token
- Go to Azure DevOps → User Settings → Personal Access Tokens
- Click “New Token”
- Name it (e.g., “VS Code Marketplace”)
- Set Organization to “All accessible organizations”
- Set Scopes to “Marketplace (Manage)”
- Click “Create” and save the token securely
Create Publisher
Visit the Visual Studio Marketplace Publisher Management page:
- Click “Create publisher”
- Enter a unique ID (lowercase, no spaces)
- Add a display name and description
- Click “Create”
Preparing for Publication
Update package.json
Ensure your manifest has all required fields:package.json
Key Metadata Fields
- publisher - Your publisher ID (required)
- version - Follow semantic versioning
- description - Clear, concise explanation (shown in search results)
- repository - Link to source code
- icon - 128x128 PNG image for marketplace listing
- categories - Help users discover your extension
- keywords - Improve searchability
- license - Specify your license (MIT, Apache-2.0, etc.)
Create a README
A comprehensive README.md is essential:README.md
Add CHANGELOG
Document version history in CHANGELOG.md:CHANGELOG.md
Add Extension Icon
Create a 128x128 PNG icon and reference it in package.json:Exclude Unnecessary Files
Create.vscodeignore to exclude files from the package (based on VS Code’s built-in extensions):
.vscodeignore
Smaller packages install faster. Exclude source files, tests, and development dependencies.
Packaging Your Extension
Build for Production
If using esbuild (recommended, like VS Code’s built-in extensions):Create VSIX Package
Package your extension into a.vsix file:
my-extension-1.0.0.vsix.
Validate Package
vsce automatically validates:
- All required fields in package.json
- Icon file exists and is correct size
- README.md exists
- LICENSE file exists (if license specified)
Publishing to Marketplace
Verify Everything
- Test all features thoroughly
- Review README and CHANGELOG
- Check version number
- Ensure icon displays correctly
Updating Extensions
Update Version
Increment version in package.json following semver:
- Major (1.0.0 → 2.0.0): Breaking changes
- Minor (1.0.0 → 1.1.0): New features, backwards-compatible
- Patch (1.0.0 → 1.0.1): Bug fixes
Unpublishing Extensions
To remove an extension from the marketplace:Best Practices
Pre-release Versions
Test updates with pre-release versions:Continuous Integration
Automate publishing with GitHub Actions:.github/workflows/publish.yml
Version Control
Before publishing:Quality Checks
✓ Test on Windows, macOS, and Linux✓ Test with different VS Code versions
✓ Verify all commands work
✓ Check performance (extension startup time)
✓ Review all settings and configurations
✓ Proofread documentation
Marketplace Management
Manage your extensions at marketplace.visualstudio.com/manage:- View statistics (installs, ratings)
- Respond to reviews
- Update publisher profile
- Manage multiple extensions
- View acquisition trends
Monitoring Success
Track your extension’s performance:- Installs - Total installations
- Ratings - User satisfaction (1-5 stars)
- Reviews - Detailed user feedback
- Acquisition - Install trends over time
Troubleshooting
Publication Failed
Common issues:- Invalid token: Recreate PAT with correct permissions
- Missing publisher: Add
"publisher"field to package.json - Invalid version: Use semver format (e.g., 1.0.0)
- Missing icon: Add icon file and reference in package.json
- Large package: Check .vscodeignore excludes unnecessary files
Extension Not Appearing
After publishing, it may take a few minutes for your extension to appear in search results. Clear your cache or search by exact name.Next Steps
Extension Guidelines
Follow best practices for high-quality extensions
Marketplace Overview
Learn how users discover and install extensions