-
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
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 SKUMicrosoft.VisualStudio.CommunityMicrosoft.VisualStudio.EnterpriseMicrosoft.VisualStudio.ProMicrosoft.VisualStudio.ExpressvariantsMicrosoft.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
- Create new doc page for
extension.manifest.json - Document purpose and use case (CI/CD publishing with VsixPublisher)
- Include complete field reference (above)
- Add example files for common scenarios
- Document VsixPublisher CLI integration
- Add CI/CD workflow examples (GitHub Actions, Azure Pipelines)
- Note which fields come from VSIX vs need manual specification
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"
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels