Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie Manifest to Code to aplikacja konsolowa, która pobiera plik imagemanifest dla usługi obrazów programu Visual Studio i generuje plik otoki lub pliki służące do odwoływania się do wartości manifestu obrazu w plikach C++, C#, VB lub .vsct dla rozszerzeń programu Visual Studio. To narzędzie generuje pliki otoki, których można użyć do żądania obrazów z usługi obrazów programu Visual Studio bezpośrednio lub przekazywania wartości manifestu za pośrednictwem interfejsów API, jeśli kod nie obsługuje żadnego z jego własnego interfejsu użytkownika i renderowania.
Jak korzystać z narzędzia
Składnia
ManifestToCode /manifest:<Plik> manifestu obrazu /language:<Code Language><Optional Args>
Argumenty
| Nazwa przełącznika | Uwagi | Wymagane lub opcjonalne |
|---|---|---|
| /Manifestu | Ścieżka do manifestu obrazu używana do tworzenia lub aktualizowania otoki kodu. | Wymagania |
| /Język | Język, w którym ma być generowana otoka kodu. Prawidłowe wartości: CPP, C++, CS, CSharp, C#, VB lub VSCT Wartości są bez uwzględniania wielkości liter. W przypadku opcji języka VSCT opcje /monikerClass, /classAccess i /namespace są ignorowane. |
Wymagania |
| /imageIdClass | Nazwa imageIdClass i skojarzony plik utworzony przez narzędzie. W przypadku opcji języka C++ są generowane tylko pliki .h. Ustawienie domyślne: <Ścieżka manifestu>\MyImageIds.<Lang Ext> |
Opcjonalnie |
| /monikerClass | Nazwa nazwy monikerClass i skojarzonego pliku utworzonego przez narzędzie. W przypadku opcji języka C++ są generowane tylko pliki .h. Jest to ignorowane dla języka VSCT. Ustawienie domyślne: <Ścieżka> manifestu\MyMonikers.<Lang Ext> |
Opcjonalnie |
| /classAccess | Modyfikator dostępu dla klasy imageIdClass i monikerClass. Upewnij się, że modyfikator dostępu jest prawidłowy dla danego języka. Jest to ignorowane dla opcji języka VSCT. Ustawienie domyślne: publiczne |
Opcjonalnie |
| /Obszaru nazw | Przestrzeń nazw zdefiniowana w otoce kodu. Jest to ignorowane dla opcji języka VSCT. Albo '.' lub '::' są prawidłowymi separatorami przestrzeni nazw, niezależnie od wybranej opcji języka. Ustawienie domyślne: MyImages |
Opcjonalnie |
| /noLogo | Ustawienie tej flagi uniemożliwia drukowanie informacji o produktach i prawach autorskich. | Opcjonalnie |
| /? | Wyświetl informacje pomocy. | Opcjonalnie |
| /help | Wyświetl informacje pomocy. | Opcjonalnie |
Przykłady
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
Uwagi
Zalecamy użycie tego narzędzia z manifestami obrazów wygenerowanymi przez narzędzie Manifest z zasobów.
Narzędzie analizuje tylko wpisy symboli, aby wygenerować otoki kodu. Jeśli manifest obrazu nie zawiera żadnych symboli, wygenerowane otoki kodu będą puste. Jeśli w manifeście obrazu znajduje się obraz lub zestaw obrazów, które nie używają symboli, zostaną one wykluczone z otoki kodu.
Przykładowe dane wyjściowe
Otoki języka C#
Para prostych klas moniker obrazów i identyfikatora obrazu dla języka C# będzie podobna do poniższego kodu:
//-----------------------------------------------------------------------------
// <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 }; } }
}
}
Otoki języka C++
Para prostych klas identyfikatora obrazu i moniker obrazów dla języka C++ będzie podobna do poniższego kodu:
//-----------------------------------------------------------------------------
// <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 };
}
Otoki języka Visual Basic
Para prostych klas moniker obrazów i identyfikatora obrazu dla języka Visual Basic będzie podobna do poniższego kodu:
' -----------------------------------------------------------------------------
' <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
Otoka VSCT
Zestaw identyfikatorów obrazów dla pliku vsct będzie podobny do następującego:
<?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>