Summary
Add documentation covering the extension.manifest.json file, which is used by VsixPublisher for automated CI/CD publishing to the Visual Studio Marketplace.
Full Schema Reference
Schema URL: http://json.schemastore.org/vsix-publish
Required Fields
| Field |
Type |
Description |
categories |
array |
1-3 unique category values |
identity |
object |
Extension identity (requires internalName subfield) |
overview |
string |
Path to markdown file for marketplace page |
publisher |
string |
Publisher identifier (not display name) |
All Properties
assetFiles (array)
Additional assets to include in the marketplace package.
| Subfield |
Type |
Required |
Description |
pathOnDisk |
string |
Yes |
File path relative to JSON directory |
targetPath |
string |
Yes |
Embedded package path (defaults to empty) |
categories (array)
Constraints: 1-3 items, unique values
Valid values:
- ajax, build, coding, connected services, data, database, documentation
- extension sdk, framework and libraries, lightswitch, modelling, office, other
- performance, programming languages, reporting, security, services
- setup and deployment, sharepoint, source control, testing, theme
- visual studio extensions, web, workflow
identity (object)
| Subfield |
Type |
Constraints |
Notes |
internalName |
string |
1-63 chars, pattern ^[^\s-]+$ |
Required. Format: publisherName.internalName |
displayName |
string |
1-80 chars |
Required for non-VSIX extensions |
description |
string |
1-280 chars |
Required for non-VSIX extensions |
icon |
string |
- |
Required for non-VSIX; supports relative paths |
version |
string |
Pattern ^([0-9]+\.){1,3}([0-9]+)$ |
Required for non-VSIX |
vsixId |
string |
- |
Extension identifier |
language |
string/number |
- |
CLR locale or LCID code |
tags |
array |
Each tag 1-50 chars |
Marketplace tags |
installTargets |
array |
Min 1 item |
Required for non-VSIX extensions |
installTargets subfields:
sku (enum): Target Visual Studio SKU
Microsoft.VisualStudio.Community
Microsoft.VisualStudio.Enterprise
Microsoft.VisualStudio.Pro
Microsoft.VisualStudio.Express variants
Microsoft.VisualStudio.VSLS
version (string): Version range, pattern ^[0-9\[\(,. \)\]]+$
overview (string)
Path to markdown file displayed on the extension's marketplace page. Min 1 character.
priceCategory (string)
- Default:
free
- Valid values:
free, trial, paid
private (boolean)
- Default:
false
- Controls whether extension is uploaded as private
publisher (string)
Publisher identifier. Must not be a display name. Min 1 character.
qna (boolean)
- Default:
true
- Enables Q&A section on marketplace page
repo (string)
GitHub repository URL. Must be valid URI format.
Documentation Tasks
Example (Minimal)
{
"$schema": "http://json.schemastore.org/vsix-publish",
"categories": ["coding"],
"identity": {
"internalName": "MyExtension"
},
"overview": "../README.md",
"publisher": "MyPublisher"
}
Example (Full)
{
"$schema": "http://json.schemastore.org/vsix-publish",
"categories": ["coding", "programming languages"],
"identity": {
"internalName": "MyExtension",
"tags": ["productivity", "tools"]
},
"overview": "../README.md",
"publisher": "MyPublisher",
"priceCategory": "free",
"private": false,
"qna": true,
"repo": "https://github.com/MyPublisher/MyExtension"
}
Summary
Add documentation covering the
extension.manifest.jsonfile, which is used by VsixPublisher for automated CI/CD publishing to the Visual Studio Marketplace.Full Schema Reference
Schema URL:
http://json.schemastore.org/vsix-publishRequired Fields
categoriesidentityinternalNamesubfield)overviewpublisherAll Properties
assetFiles(array)Additional assets to include in the marketplace package.
pathOnDisktargetPathcategories(array)Constraints: 1-3 items, unique values
Valid values:
identity(object)internalName^[^\s-]+$publisherName.internalNamedisplayNamedescriptioniconversion^([0-9]+\.){1,3}([0-9]+)$vsixIdlanguagetagsinstallTargetsinstallTargets subfields:
sku(enum): Target Visual Studio SKUMicrosoft.VisualStudio.CommunityMicrosoft.VisualStudio.EnterpriseMicrosoft.VisualStudio.ProMicrosoft.VisualStudio.ExpressvariantsMicrosoft.VisualStudio.VSLSversion(string): Version range, pattern^[0-9\[\(,. \)\]]+$overview(string)Path to markdown file displayed on the extension's marketplace page. Min 1 character.
priceCategory(string)freefree,trial,paidprivate(boolean)falsepublisher(string)Publisher identifier. Must not be a display name. Min 1 character.
qna(boolean)truerepo(string)GitHub repository URL. Must be valid URI format.
Documentation Tasks
extension.manifest.jsonExample (Minimal)
{ "$schema": "http://json.schemastore.org/vsix-publish", "categories": ["coding"], "identity": { "internalName": "MyExtension" }, "overview": "../README.md", "publisher": "MyPublisher" }Example (Full)
{ "$schema": "http://json.schemastore.org/vsix-publish", "categories": ["coding", "programming languages"], "identity": { "internalName": "MyExtension", "tags": ["productivity", "tools"] }, "overview": "../README.md", "publisher": "MyPublisher", "priceCategory": "free", "private": false, "qna": true, "repo": "https://github.com/MyPublisher/MyExtension" }