Compartir a través de


Manifest to Code

La herramienta Manifiesto a código es una aplicación de consola que toma un archivo .imagemanifest para el servicio de imágenes de Visual Studio y genera un archivo contenedor o archivos para hacer referencia a los valores del manifiesto de imagen en archivos C++, C#, VB o .vsct para extensiones de Visual Studio. Esta herramienta genera archivos contenedor que se pueden usar para solicitar imágenes del servicio de imágenes de Visual Studio directamente o para pasar los valores de manifiesto a través de las API si el código no controla ninguna de sus propias interfaces de usuario y representación.

Uso de la herramienta

Sintaxis

ManifestToCode /manifest:<Image Manifest file> /language:<Code Language><Opcional Args>

Argumentos

Nombre del modificador Notas Obligatorio o opcional
/Manifiesto Ruta de acceso al manifiesto de imagen que se va a usar para crear o actualizar el contenedor de código. Obligatorio
/Lengua Lenguaje en el que se va a generar el contenedor de código.

Valores válidos: CPP, C++, CS, CSharp, C#, VB o VSCT Los valores no distinguen mayúsculas de minúsculas.

Para la opción de lenguaje VSCT, se omiten las opciones /monikerClass, /classAccess y /namespace.
Obligatorio
/imageIdClass Nombre de imageIdClass y el archivo asociado creado por la herramienta. Para la opción de lenguaje C++, solo se generan archivos .h.

Valor predeterminado: <Ruta de acceso del> manifiesto\MyImageIds.<Lang Ext>
Opcionales
/monikerClass Nombre de monikerClass y el archivo asociado creado por la herramienta. Para la opción de lenguaje C++, solo se generan archivos .h. Esto se omite para el lenguaje VSCT.

Valor predeterminado: <Ruta de> acceso del manifiesto\MyMonikers.<Lang Ext>
Opcionales
/classAccess Modificador de acceso para imageIdClass y monikerClass. Asegúrese de que el modificador de acceso es válido para el idioma especificado. Esto se omite para la opción de lenguaje VSCT.

Valor predeterminado: público
Opcionales
/Nombres Espacio de nombres definido en el contenedor de código. Esto se omite para la opción de lenguaje VSCT. '.' o '::' son separadores de espacio de nombres válidos, independientemente de la opción de idioma elegida.

Valor predeterminado: MyImages
Opcionales
/noLogo Al establecer esta marca, se detiene la impresión de la información de los productos y los derechos de autor. Opcionales
/? Imprimir información de ayuda. Opcionales
/help Imprimir información de ayuda. Opcionales

Ejemplos

  • 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

Notas

  • Se recomienda usar esta herramienta con manifiestos de imagen generados por la herramienta Manifiesto desde recursos.

  • La herramienta solo examina las entradas de símbolos para generar los contenedores de código. Si un manifiesto de imagen no contiene símbolos, los contenedores de código generados estarán vacíos. Si hay una imagen o un conjunto de imágenes en el manifiesto de imagen que no usan símbolos, se excluirán del contenedor de código.

Salida de ejemplo

Contenedores de C#

Un par de clases de identificador de imagen simple e moniker de imagen para C# será similar al código siguiente:

//-----------------------------------------------------------------------------
// <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 }; } }
    }
}

Contenedores de C++

Un par de clases de id. de imagen simple e moniker de imagen para C++ será similar al código siguiente:

//-----------------------------------------------------------------------------
// <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 };

}

Contenedores de Visual Basic

Un par de clases de identificador de imagen simple e moniker de imagen para Visual Basic será similar al código siguiente:

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

Contenedor de VSCT

Un conjunto de identificadores de imagen para un archivo .vsct será similar al siguiente:

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