Manifest to Code
L’outil Manifest to Code est une application console qui prend un fichier .imagemanifest pour visual Studio Image Service et génère un fichier wrapper ou des fichiers pour référencer les valeurs du manifeste d’image en C++, C#, VB ou .vsct pour les extensions Visual Studio. Cet outil génère des fichiers wrapper qui peuvent être utilisés pour demander des images directement à partir du service d’images Visual Studio, ou pour transmettre les valeurs de manifeste via des API si le code ne gère aucune de ses propres interface utilisateur et rendu.
Comment utiliser l’outil ?
Syntaxe
ManifestToCode /manifest :<Image Manifest file> /language :<Code Language><Optional Args>
Arguments
Nom du commutateur | Notes | Obligatoire ou facultatif |
---|---|---|
/Manifeste | Chemin d’accès au manifeste d’image à utiliser pour créer ou mettre à jour le wrapper de code. | Requis |
/Langue | Langage dans lequel générer le wrapper de code. Valeurs valides : CPP, C++, CS, CSharp, C#, VB ou VSCT Les valeurs ne respectent pas la casse. Pour l’option de langue VSCT, les options /monikerClass, /classAccess et /namespace sont ignorées. |
Requis |
/imageIdClass | Nom de l’imageIdClass et du fichier associé créé par l’outil. Pour l’option de langage C++, seuls les fichiers .h sont générés. Valeur par défaut : <chemin> du manifeste\MyImageIds.<Lang Ext> |
Facultatif |
/monikerClass | Nom du monikerClass et du fichier associé créé par l’outil. Pour l’option de langage C++, seuls les fichiers .h sont générés. Cela est ignoré pour la langue VSCT. Valeur par défaut : <Chemin> du manifeste\MyMonikers.<Lang Ext> |
Facultatif |
/classAccess | Modificateur d’accès pour imageIdClass et monikerClass. Vérifiez que le modificateur d’accès est valide pour la langue donnée. Cela est ignoré pour l’option de langage VSCT. Par défaut : Public |
Facultatif |
/Noms | Espace de noms défini dans le wrapper de code. Cela est ignoré pour l’option de langage VSCT. '.' ou ' ::' sont des séparateurs d’espaces de noms valides, quelle que soit l’option de langue choisie. Valeur par défaut : MyImages |
Facultatif |
/noLogo | La définition de cet indicateur empêche l’impression des informations sur le produit et les droits d’auteur. | Facultatif |
/? | Imprimez les informations d’aide. | Facultatif |
/help | Imprimez les informations d’aide. | Facultatif |
Exemples
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
Notes
Nous vous recommandons d’utiliser cet outil avec des manifestes d’image générés par l’outil Manifeste à partir de ressources.
L’outil examine uniquement les entrées de symboles pour générer les wrappers de code. Si un manifeste d’image ne contient aucun symbole, les wrappers de code générés sont vides. S’il existe une image ou un ensemble d’images dans le manifeste d’image qui n’utilisent pas de symboles, elles sont exclues du wrapper de code.
Exemple de sortie
Wrappers C#
Une paire de classes moniker d’image et d’ID d’image simples pour C# sera similaire au code ci-dessous :
//-----------------------------------------------------------------------------
// <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 C++
Une paire de classes moniker d’image et d’ID d’image simples pour C++ est similaire au code ci-dessous :
//-----------------------------------------------------------------------------
// <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 Visual Basic
Une paire de classes moniker d’image et d’ID d’image simples pour Visual Basic sera similaire au code ci-dessous :
' -----------------------------------------------------------------------------
' <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 VSCT
Un ensemble d’ID d’image pour un fichier .vsct est similaire à ceci :
<?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>