Freigeben über


Manifest für Code

Das Tool "Manifest für Code" ist eine Konsolenanwendung, die eine IMAGEMANIFEST-Datei für den Visual Studio Image Service verwendet und eine Wrapperdatei oder -dateien generiert, um auf die Werte des Bildmanifests in C++-, C#-, VB- oder VSCT-Dateien für Visual Studio-Erweiterungen zu verweisen. Dieses Tool generiert Wrapperdateien, die zum direkten Anfordern von Bildern aus dem Visual Studio Image Service oder zum Übergeben der Manifestwerte über APIs verwendet werden können, wenn der Code keine eigene Benutzeroberfläche und rendering verarbeitet.

So verwenden Sie das Tool

Syntax

ManifestToCode /manifest:<Image Manifestdatei> /language:<Code Language><Optional Args>

Argumente

Name wechseln Hinweise Erforderlich oder optional
/Manifest Der Pfad zum Bildmanifest, das zum Erstellen oder Aktualisieren des Codewrappers verwendet werden soll. Erforderlich
/Sprache Die Sprache, in der der Codewrapper generiert werden soll.

Gültige Werte: CPP, C++, CS, CSharp, C#, VB oder VSCT. Bei den Werten wird die Groß-/Kleinschreibung nicht beachtet.

Für die VSCT-Sprachoption werden die Optionen "/monikerClass", "/classAccess" und "/namespace" ignoriert.
Erforderlich
/imageIdClass Der Name der imageIdClass und der zugeordneten Datei, die vom Tool erstellt wurde. Für die C++-Sprachoption werden nur H-Dateien generiert.

Standard: <Manifestpfad>\MyImageIds.<Lang Ext>
Optional
/monikerClass Der Name der monikerClass und der zugeordneten Datei, die vom Tool erstellt wurde. Für die C++-Sprachoption werden nur H-Dateien generiert. Dies wird für die VSCT-Sprache ignoriert.

Standard: <Manifestpfad>\MyMonikers.<Lang Ext>
Optional
/classAccess Der Zugriffsmodifizierer für die imageIdClass und die monikerClass. Stellen Sie sicher, dass der Zugriffsmodifizierer für die angegebene Sprache gültig ist. Dies wird für die VSCT-Sprachoption ignoriert.

Standard: Öffentlich
Optional
/Namespace Der im Codewrapper definierte Namespace. Dies wird für die VSCT-Sprachoption ignoriert. Entweder '.' oder '::'' sind gültige Namespacetrennzeichen, unabhängig von der ausgewählten Sprachoption.

Standard: MyImages
Optional
/noLogo Durch Festlegen dieser Kennzeichnung werden produkt- und copyrightinformationen nicht mehr gedruckt. Optional
/? Drucken Sie Hilfeinformationen aus. Optional
/help Drucken Sie Hilfeinformationen aus. Optional

Beispiele

  • ManifestToCode /manifest:D:\MyManifest.imagemanifest /language:CSharp

  • ManifestToCode /manifest:D:\MyManifest.imagemanifest /language:C++ /namespace:My:Namespace /imageIdClass:MyImageIds /monikerClass:MyMonikers /classAccess:friend

  • ManifestToCode /manifest:D:\MyManifest.imagemanifest /language:VSCT /imageIdClass:MyImageIds

Hinweise

  • Es wird empfohlen, dieses Tool mit Bildmanifesten zu verwenden, die vom Tool "Manifest aus Ressourcen" generiert wurden.

  • Das Tool sucht nur nach Symboleinträgen, um die Codewrapper zu generieren. Wenn ein Bildmanifest keine Symbole enthält, sind die generierten Codewrapper leer. Wenn im Bildmanifest ein Bild oder eine Gruppe von Bildern vorhanden ist, die keine Symbole verwenden, werden sie vom Codewrapper ausgeschlossen.

Beispielausgabe

C#-Wrapper

Ein Paar einfacher Bild-ID und Bildmoniker-Klassen für C# ähnelt dem folgenden Code:

//-----------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by the ManifestToCode tool.
//     Tool Version: 14.0.15198
// </auto-generated>
//-----------------------------------------------------------------------------

using System;

namespace MyImages
{
    public static class MyImageIds
    {
        public static readonly Guid AssetsGuid = new Guid("{442d8739-efde-46a4-8f29-e3a1e5e7f8b4}");

        public const int MyImage1 = 0;
        public const int MyImage2 = 1;
    }
}
//-----------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by the ManifestToCode tool.
//     Tool Version: 14.0.15198
// </auto-generated>
//-----------------------------------------------------------------------------

using Microsoft.VisualStudio.Imaging.Interop;

namespace MyImages
{
    public static class MyMonikers
    {
        public static ImageMoniker MyImage1 { get { return new ImageMoniker { Guid = MyImageIds.AssetsGuid, Id = MyImageIds.MyImage1 }; } }
        public static ImageMoniker MyImage2 { get { return new ImageMoniker { Guid = MyImageIds.AssetsGuid, Id = MyImageIds.MyImage2 }; } }
    }
}

C++-Wrapper

Ein Paar einfacher Bild-ID und Bildmoniker-Klassen für C++ ähnelt dem folgenden Code:

//-----------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by the ManifestToCode tool.
//     Tool Version: 14.0.15198
// </auto-generated>
//-----------------------------------------------------------------------------

#pragma once

#include <guiddef.h>

namespace MyImages {

class MyImageIds {
public:

    static const GUID AssetsGuid;

    static const int MyImage1 = 0;
    static const int MyImage2 = 1;

};

__declspec(selectany) const GUID MyImageIds::AssetsGuid = {0x442d8739,0xefde,0x46a4,{0x8f,0x29,0xe3,0xa1,0xe5,0xe7,0xf8,0xb4}};

}
//-----------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by the ManifestToCode tool.
//     Tool Version: 14.0.15198
// </auto-generated>
//-----------------------------------------------------------------------------

#pragma once

#include "ImageParameters140.h"
#include "MyImageIds.h"

namespace MyImages {

class MyMonikers {
public:

    static const ImageMoniker MyImage1;
    static const ImageMoniker MyImage2;

};

__declspec(selectany) const ImageMoniker MyMonikers::MyImage1 = { MyImageIds::AssetsGuid, MyImageIds::MyImage1 };
__declspec(selectany) const ImageMoniker MyMonikers::MyImage2 = { MyImageIds::AssetsGuid, MyImageIds::MyImage2 };

}

Visual Basic-Wrapper

Ein Paar einfacher Bild-ID- und Bildmonikerklassen für Visual Basic ähnelt dem folgenden Code:

' -----------------------------------------------------------------------------
'  <auto-generated>
'      This code was generated by the ManifestToCode tool.
'      Tool Version: 14.0.15198
'  </auto-generated>
' -----------------------------------------------------------------------------

Imports System

Namespace MyImages

    Public Module MyImageIds

        Public Shared ReadOnly AssetsGuid As Guid = New Guid("{442d8739-efde-46a4-8f29-e3a1e5e7f8b4}")

        Public Const MyImage1 As Integer = 0
        Public Const MyImage2 As Integer = 1

    End Module

End Namespace
' -----------------------------------------------------------------------------
'  <auto-generated>
'      This code was generated by the ManifestToCode tool.
'      Tool Version: 14.0.15198
'  </auto-generated>
' -----------------------------------------------------------------------------

Imports Microsoft.VisualStudio.Imaging.Interop

Namespace MyImages

    Public Module MyMonikers

        Public Readonly Property MyImage1
            Get
                Return New ImageMoniker With {.Guid = MyImageIds.AssetsGuid, .Id = MyImageIds.MyImage1}
            End Get
        End Property

        Public Readonly Property MyImage2
            Get
                Return New ImageMoniker With {.Guid = MyImageIds.AssetsGuid, .Id = MyImageIds.MyImage2}
            End Get
        End Property

    End Module

End Namespace

VSCT-Wrapper

Ein Satz von Bild-IDs für eine VSCT-Datei ähnelt folgendem:

<?xml version='1.0' encoding='utf-8'?>
<!--
- [auto-generated]
     This code was generated by the ManifestToCode tool.
     Tool Version: 14.0.15198
- [/auto-generated]
-->
<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable">
  <Symbols>
    <GuidSymbol name="AssetsGuid" value="{442d8739-efde-46a4-8f29-e3a1e5e7f8b4}">
      <IDSymbol name="MyImage1" value="0" />
      <IDSymbol name="MyImage2" value="1" />
    </GuidSymbol>
  </Symbols>
</CommandTable>