While trying to publish an extension to the marketplace I bumped into this error message.
The supplied extension definition isn't valid:
'Uploaded extension package is missing an 'overview.md' file which is a mandatory details asset.
Try again after adding the file.'
Yet, my extension has the mandatory details
asset in the vss-extension.json
:
content": {
"details": {
"path": "overview.md"
}
}
And the file is present in the generated vsix:
It turns out that when you try to simply include everything in the extension with:
"files": [
{
"path": "."
}
]
It overrides the metadata for the "special content files" when these files are matched by the listed files.
So, I ended up moving all the build task in the extension to a _tasks
folder and instead of lazily including everything, I'm now lazily including _tasks
:
"files": [
{
"path": "_tasks"
}
],
With this change, the vsix has the required metadata on the overview.md
:
vsix\extension.vsixmanifest
<Assets>
<Asset Type="Microsoft.VisualStudio.Services.Icons.Default" d:Source="File" Path="icon-default.png" Addressable="true"/>
<Asset Type="Microsoft.VisualStudio.Services.Icons.Large" d:Source="File" Path="icon-large.png" Addressable="true"/>
<Asset Type="Microsoft.VisualStudio.Services.Content.Details" d:Source="File" Path="overview.md" Addressable="true"/>
<Asset Type="Microsoft.VisualStudio.Services.Content.License" d:Source="File" Path="LICENSE" Addressable="true"/>
<Asset Type="Microsoft.VisualStudio.Services.Content.Privacy" d:Source="File" Path="PRIVACY.md" Addressable="true"/>
<Asset Type="Microsoft.VisualStudio.Services.Manifest" d:Source="File" Path="extension.vsomanifest" Addressable="true"/>
</Assets>