vsixmanifest for all: VS 2010, 2012 i 2013

Używam VSIX Manifest Designer pod VS2013. Dodałem Microsoft.VisualStudio.Pro Identyfikator produktu i [10.0,13.0) zakres wersji do instalacji celów. Pomimo tego, nadal nie widzę mojego VS2010 Professional jako dostępnego celu instalacji:

Tutaj wpisz opis obrazka

Źródło.przedłużenie.zawartość pliku vsixmanifest jest pokazana poniżej:
<?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>

Co należy zmienić, aby umożliwić instalację tego rozszerzenia do VS2010, 2012 i 2013?

Author: superjos, 2014-03-27

2 answers

Masz manifest VSIX w wersji 2, który nie jest kompatybilny z Visual Studio 2010. Późniejsze wersje Visual Studio respektują wersję 1 manifestu, więc w celu obsługi wszystkich 3 wersji Visual Studio z jednym manifestem, będziesz musiał przekonwertować go do v1.0 ręcznie (i upewnij się, że nie edytować go z VS2012+, w przeciwnym razie zostanie przekonwertowany z powrotem do v2.0).

Coś takiego:

<?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>

Nie musisz podawać wszystkich edycji produktu (tzw. SKU), Pro jest wystarczy, że jeśli, powiedzmy, Ultimate jest zainstalowany, zostanie wyświetlony.

 30
Author: Igal Tabachnik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-27 13:18:31

Działa całkiem nieźle ( dzięki Igal ), jeśli VSIX jest rozwijany w VS 2012 i zainstalowany w VS 2015. Jednak odwrotna nie działa (oznacza opracowany w VS 2015 i spróbuj zainstalować w VS 2012) Po analizie aktywności .xml, znalazłem pracę wokół

nie można załadować pliku lub assembly 'Microsoft.VisualStudio.Shell.14.0, Version=14.0.0.0, Culture=neutral, Publiceytoken=b03f5f7f11d50a3a' lub jedna z jego zaleĹźnoĹ " ci.

Obejście I did Usuń VisualStudio.Shell.14.0 i zainstaluj VisualStudio.Shell.11.0 using Package manager console (Install-Package VSSDK.Shell.11) i zainstalowane w VS 2012. Teraz działa zgodnie z oczekiwaniami

 1
Author: Murugaperumal sankaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-17 11:26:43