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>