Manifest to Code
A ferramenta Manifest to Code é um aplicativo de console que usa um arquivo .imagemanifest para o Visual Studio Image Service e gera um arquivo wrapper ou arquivos para fazer referência aos valores do manifesto da imagem em arquivos C++, C#, VB ou .vsct para extensões do Visual Studio. Essa ferramenta gera arquivos wrapper que podem ser usados para solicitar imagens do Visual Studio Image Service diretamente ou para passar os valores de manifesto por meio de APIs se o código não manipular nenhuma de sua própria interface do usuário e renderização.
Como usar a ferramenta
Sintaxe
ManifestToCode /manifest:Arquivo de manifesto> de imagem /idioma:<<Linguagem><de código Args opcional>
Argumentos
Nome do switch | Observações | Obrigatório ou Opcional |
---|---|---|
/manifesto | O caminho para o manifesto de imagem a ser usado para criar ou atualizar o wrapper de código. | Obrigatório |
/Idioma | O idioma no qual gerar o wrapper de código. Valores válidos: CPP, C++, CS, CSharp, C#, VB ou VSCT Os valores não diferenciam maiúsculas de minúsculas. Para a opção de idioma VSCT, as opções /monikerClass, /classAccess e /namespace são ignoradas. |
Obrigatório |
/imageIdClass | O nome do imageIdClass e o arquivo associado criado pela ferramenta. Para a opção de linguagem C++, somente arquivos .h são gerados. Padrão: <Caminho do Manifesto>\MyImageIds.<Lang Ext> |
Opcional |
/monikerClass | O nome do monikerClass e o arquivo associado criado pela ferramenta. Para a opção de linguagem C++, somente arquivos .h são gerados. Isso é ignorado para a linguagem VSCT. Padrão: <Caminho do Manifesto>\MyMonikers.<Lang Ext> |
Opcional |
/classAcesso | O modificador de acesso para imageIdClass e monikerClass. Verifique se o modificador de acesso é válido para o idioma especificado. Isso é ignorado para a opção de idioma VSCT. Padrão: Público |
Opcional |
/namespace | O namespace definido no wrapper de código. Isso é ignorado para a opção de idioma VSCT. '.' ou '::' são separadores de namespace válidos, independentemente da opção de idioma escolhida. Padrão: MyImages |
Opcional |
/noLogo | A configuração desse sinalizador impede a impressão de informações sobre produtos e direitos autorais. | Opcional |
/? | Imprima as informações da Ajuda. | Opcional |
/help | Imprima as informações da Ajuda. | Opcional |
Exemplos
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
Observações
Recomendamos que você use essa ferramenta com manifestos de imagem que foram gerados pela ferramenta Manifesto de Recursos.
A ferramenta examina apenas as entradas de símbolo para gerar os wrappers de código. Se um manifesto de imagem não contiver símbolos, os wrappers de código gerados estarão vazios. Se houver uma imagem ou um conjunto de imagens no manifesto da imagem que não usam símbolos, elas serão excluídas do wrapper de código.
Saída de exemplo
Invólucros C#
Um par de classes de ID de imagem simples e moniker de imagem para C# será semelhante ao código abaixo:
//-----------------------------------------------------------------------------
// <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 }; } }
}
}
Invólucros C++
Um par de ID de imagem simples e classes de moniker de imagem para C++ será semelhante ao código abaixo:
//-----------------------------------------------------------------------------
// <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 do Visual Basic
Um par de ID de imagem simples e classes de moniker de imagem para Visual Basic será semelhante ao código abaixo:
' -----------------------------------------------------------------------------
' <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
Invólucro VSCT
Um conjunto de IDs de imagem para um arquivo .vsct será semelhante a este:
<?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>