-
Notifications
You must be signed in to change notification settings - Fork 4
Extension Manifest
mekoda edited this page Jul 27, 2015
·
2 revisions
When creating a new Visual Studio extension project (VSPackage or VSIX or any of the other specific extensions), the version of Visual Studio you use to create it matters. In VS2012 the VSIX schema was changed completely.
Since VS2010 is still very much pervasive, you can't just move to the 2.0 schema. In addition, we've found that there's no really key benefit in switching to it, since all features in the 1.0 schema are supported and work pretty well.
Creating a manifest therefore that supports VS2010, 2012, 2013 and eventually 2015, is pretty simple:
<?xml version="1.0" encoding="utf-8"?>
<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
<Identifier Id="[ID]">
<Name>[NAME]</Name>
<Author>[AUTHOR]</Author>
<Version>[VERSION]</Version>
<Description xml:space="preserve">[DESCRIPTION]</Description>
... other required elements ...
<SupportedProducts>
<VisualStudio Version="10.0">
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="11.0">
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="12.0">
<Edition>Pro</Edition>
</VisualStudio>
<!-- Future-proof to one more version of VS -->
<VisualStudio Version="14.0">
<Edition>Pro</Edition>
</VisualStudio>
</SupportedProducts>
<!-- This covers VS2010 that runs on CLR 4.0 and VS2012+ which runs 4.5.
Using MaxVersion="4.0" will still work in VS2012+ though. -->
<SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5" />
</Identifier>
<References>
<!-- If you happen to import/export stuff via VS MEF -->
<Reference Id="Microsoft.VisualStudio.MPF" MinVersion="10.0">
<Name>Visual Studio MPF</Name>
</Reference>
</References>
<Content>
<!-- If your project contains a VS package rather than a simple VSIX -->
<VsPackage>|%CurrentProject%;PkgdefProjectOutputGroup|</VsPackage>
<!-- If your project exports components via MEF -->
<MefComponent>|%CurrentProject%|</MefComponent>
<!-- If your project provides item and project templates -->
<ItemTemplate>T\IT</ItemTemplate>
<ProjectTemplate>T\PT</ProjectTemplate>
</Content>
</Vsix>