Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vsixmanifest for all: VS 2010, 2012 and 2013

Tags:

I'm using VSIX Manifest Designer under VS2013. I've added Microsoft.VisualStudio.Pro product identifier and [10.0,13.0) version range to install targets. Despite that fact, I still don't see my VS2010 Professional as an available installation target:

enter image description here

The source.extension.vsixmanifest file content is shown below:

<?xml version="1.0" encoding="utf-8"?> <PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">   <Metadata>     <Identity Id="ae98c9e5-8e14-4c92-b45a-c4fd24a49123" Version="1.0" Language="en-US" Publisher="whosoever" />     <DisplayName>MyExtension</DisplayName>     <Description xml:space="preserve">whosoever</Description>     <MoreInfo>http://www.myextension.com</MoreInfo>     <License>LICENSE.txt</License>     <Icon>icon.png</Icon>     <PreviewImage>screenshot.png</PreviewImage>   </Metadata>   <Installation InstalledByMsi="false">     <InstallationTarget Version="[10.0,13.0)" Id="Microsoft.VisualStudio.Pro" />   </Installation>   <Dependencies>     <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="4.5" />     <Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0" d:Source="Installed" Version="11.0" />   </Dependencies>   <Assets>     <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />   </Assets> </PackageManifest> 

What should be changed to enable installation of this extension to VS2010, 2012 and 2013?

like image 856
jwaliszko Avatar asked Mar 27 '14 13:03

jwaliszko


1 Answers

What you have is the version 2 VSIX manifest, which is not compatible with Visual Studio 2010. Later Visual Studio versions respect version 1 of the manifest, so in order to support all 3 Visual Studio versions with a single manifest, you'll have to convert it to v1.0 manually (and make sure NOT to edit it with VS2012+, otherwise it will be converted back to v2.0).

Something like this:

<?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="ae98c9e5-8e14-4c92-b45a-c4fd24a49123">     <Name>MyExtension</Name>     <Author>whosoever</Author>     <Version>1.0</Version>     <Description xml:space="preserve">Your decription.</Description>     <Locale>1033</Locale>     <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>     </SupportedProducts>     <SupportedFrameworkRuntimeEdition MinVersion="4.0" />   </Identifier>   <Content>     <VsPackage>|%CurrentProject%;PkgdefProjectOutputGroup|</VsPackage>     <MefComponent>|%CurrentProject%|</MefComponent>   </Content> </Vsix> 

You don't have to specify all product editions (called SKUs), Pro is enough, if, say, Ultimate is installed, it will be displayed instead.

like image 91
Igal Tabachnik Avatar answered Sep 24 '22 04:09

Igal Tabachnik