Manifeste pour le CodeManifest to Code

Le manifeste de l’outil du Code est une application console qui accepte un fichier .imagemanifest pour le Service d’images Visual Studio et génère un wrapper ou les fichiers pour faire référence aux valeurs du manifeste de l’image en C++, c#, VB ou fichiers .vsct des extensions Visual Studio.The Manifest to Code tool is a console application that takes an .imagemanifest file for the Visual Studio Image Service and generates a wrapper file or files for referencing the image manifest's values in C++, C#, VB, or .vsct files for Visual Studio extensions. Cet outil génère des fichiers de wrapper qui peuvent être utilisées pour les images de demandeurs à partir de Visual Studio Image celui-ci directement, ou en passant les valeurs de manifeste via des API si le code ne gère pas un de sa propre interface utilisateur et le rendu.This tool generates wrapper files that can be used for requesting images from the Visual Studio Image Service directly, or for passing the manifest values through APIs if the code does not handle any of its own UI and rendering.

Comment utiliser l’outilHow to use the tool

SyntaxeSyntax

ManifestToCode /manifest :<le fichier manifeste de l’Image >/Language :<Code langue > <arguments facultatifs >ManifestToCode /manifest:<Image Manifest file> /language:<Code Language> <Optional Args>

ArgumentsArguments

Nom du commutateurSwitch name NotesNotes Obligatoire ou facultatifRequired or Optional
/ manifeste/manifest Le chemin d’accès au manifeste d’image à utiliser pour créer ou mettre à jour le wrapper de code.The path to the image manifest to use to create or update the code wrapper. ObligatoireRequired
/ Language/language Le langage dans lequel générer un wrapper de code.The language in which to generate the code wrapper.

Valeurs valides : CPP, C++, CS, CSharp, c#, VB ou VSCT les valeurs respectent la casse.Valid values: CPP, C++, CS, CSharp, C#, VB, or VSCT The values are case-insensitive.

Pour la langue VSCT option, /monikerClass, /classAccess et/namespace options sont ignorées.For the VSCT language option, the /monikerClass, /classAccess, and /namespace options are ignored.
ObligatoireRequired
/imageIdClass/imageIdClass Le nom de l’imageIdClass et le fichier associé, créé par l’outil.The name of the imageIdClass and the associated file created by the tool. Pour l’option de langage C++, seuls les fichiers .h sont générés.For the C++ language option, only .h files are generated.

Valeur par défaut : <manifeste chemin d’accès > \MyImageIds.< Lang Ext >Default: <Manifest Path>\MyImageIds.<Lang Ext>
FacultatifOptional
/monikerClass/monikerClass Le nom de la monikerClass et le fichier associé, créé par l’outil.The name of the monikerClass and the associated file created by the tool. Pour l’option de langage C++, seuls les fichiers .h sont générés.For the C++ language option, only .h files are generated. Cela est ignoré pour la langue VSCT.This is ignored for the VSCT language.

Valeur par défaut : <manifeste chemin d’accès > \MyMonikers.< Lang Ext >Default: <Manifest Path>\MyMonikers.<Lang Ext>
FacultatifOptional
/classAccess/classAccess Le modificateur d’accès pour l’imageIdClass et le monikerClass.The access modifier for the imageIdClass and the monikerClass. Assurez-vous que le modificateur d’accès est valide pour le langage donné.Make sure the access modifier is valid for the given language. Cela est ignoré pour l’option de langage VSCT.This is ignored for the VSCT language option.

Par défaut : PublicDefault: Public
FacultatifOptional
/ namespace/namespace L’espace de noms défini dans le wrapper de code.The namespace defined in the code wrapper. Cela est ignoré pour l’option de langage VSCT.This is ignored for the VSCT language option. Soit '. 'ou' ::' sont des séparateurs d’espace de noms valide, quel que soit l’option de langage choisi.Either '.' or '::' are valid namespace separators, regardless of the chosen language option.

Par défaut : MyImagesDefault: MyImages
FacultatifOptional
/noLogo/noLogo Définition de cet indicateur arrête les informations de copyright et de produit à partir de l’impression.Setting this flag stops product and copyright information from printing. FacultatifOptional
/?/? Imprimer les informations d’aide.Print out Help information. FacultatifOptional
/help/help Imprimer les informations d’aide.Print out Help information. FacultatifOptional

ExemplesExamples

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

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

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

NotesNotes

  • Nous vous recommandons d’utiliser cet outil avec les manifestes d’images qui ont été générés par le manifeste à partir de l’outil de ressources.We recommend that you use this tool with image manifests that were generated by the Manifest from Resources tool.

  • L’outil examine uniquement les entrées de symbole pour générer les wrappers de code.The tool only looks at symbol entries to generate the code wrappers. Si un manifeste de l’image ne contient aucun symbole, les wrappers de code généré sera vides.If an image manifest contains no symbols, then the generated code wrappers will be empty. S’il existe une image ou un ensemble d’images dans le manifeste de l’image qui n’utilisent pas de symboles, ils seront exclus du wrapper de code.If there is an image or set of images in the image manifest that do not use symbols, then they will be excluded from the code wrapper.

Résultat de l'exempleSample output

Wrappers c#C# wrappers

Une paire d’ID de l’image simple et le moniker d’image des classes pour c# sera similaire au code ci-dessous :A pair of simple image ID and image moniker classes for C# will be similar to the below 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 }; } }  
    }  
}  

Wrappers de C++C++ wrappers

Une paire d’ID de l’image simple et le moniker d’image des classes pour C++ doivent être similaires pour le code ci-dessous :A pair of simple image ID and image moniker classes for C++ will be similar to the below 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 };  

}  

Wrappers de Visual BasicVisual Basic wrappers

Une paire d’ID de l’image simple et le moniker d’image des classes pour Visual Basic sera similaire au code ci-dessous :A pair of simple image ID and image moniker classes for Visual Basic will be similar to the below 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  

Wrapper VSCTVSCT wrapper

Un ensemble de l’image ID pour un fichier .vsct sera similaire à ceci :A set of image IDs for a .vsct file will be similar to this:

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