Bagikan melalui


Manifes ke Kode

Alat Manifes ke Kode adalah aplikasi konsol yang mengambil file .imagemanifest untuk Visual Studio Image Service dan menghasilkan file atau file pembungkus untuk mereferensikan nilai manifes gambar dalam file C++, C#, VB, atau .vsct untuk ekstensi Visual Studio. Alat ini menghasilkan file pembungkus yang dapat digunakan untuk meminta gambar dari Visual Studio Image Service secara langsung, atau untuk meneruskan nilai manifes melalui API jika kode tidak menangani UI dan penyajiannya sendiri.

Cara menggunakan alat

Sintaksis

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

Argumen

Ganti nama Catatan Diperlukan atau Opsional
/Mewujudkan Jalur ke manifes gambar yang akan digunakan untuk membuat atau memperbarui pembungkus kode. Wajib
/Bahasa Bahasa untuk menghasilkan pembungkus kode.

Nilai yang valid: CPP, C++, CS, CSharp, C#, VB, atau VSCT Nilai tidak peka huruf besar/kecil.

Untuk opsi bahasa VSCT, opsi /monikerClass, /classAccess, dan /namespace diabaikan.
Wajib
/imageIdClass Nama imageIdClass dan file terkait yang dibuat oleh alat. Untuk opsi bahasa C++, hanya file .h yang dihasilkan.

Default: <Jalur> Manifes\MyImageIds.<Lang Ext>
Opsional
/monikerClass Nama monikerClass dan file terkait yang dibuat oleh alat. Untuk opsi bahasa C++, hanya file .h yang dihasilkan. Ini diabaikan untuk bahasa VSCT.

Default: <Jalur> Manifes\MyMonikers.<Lang Ext>
Opsional
/classAccess Pengubah akses untuk imageIdClass dan monikerClass. Pastikan pengubah akses valid untuk bahasa tertentu. Ini diabaikan untuk opsi bahasa VSCT.

Default: Publik
Opsional
/Namespace Namespace yang ditentukan dalam pembungkus kode. Ini diabaikan untuk opsi bahasa VSCT. Baik '.' atau '::' adalah pemisah namespace yang valid, terlepas dari opsi bahasa yang dipilih.

Default: MyImages
Opsional
/noLogo Pengaturan bendera ini menghentikan informasi produk dan hak cipta dari pencetakan. Opsional
/? Cetak informasi Bantuan. Opsional
/help Cetak informasi Bantuan. Opsional

Contoh

  • 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

Catatan

  • Kami menyarankan agar Anda menggunakan alat ini dengan manifes gambar yang dihasilkan oleh alat Manifes dari Sumber Daya.

  • Alat ini hanya melihat entri simbol untuk menghasilkan pembungkus kode. Jika manifes gambar tidak berisi simbol, maka pembungkus kode yang dihasilkan akan kosong. Jika ada gambar atau sekumpulan gambar dalam manifes gambar yang tidak menggunakan simbol, maka gambar tersebut akan dikecualikan dari pembungkus kode.

Sampel output

Pembungkus C#

Sepasang ID gambar sederhana dan kelas moniker gambar untuk C# akan mirip dengan kode di bawah ini:

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

Pembungkus C++

Sepasang ID gambar sederhana dan kelas moniker gambar untuk C++ akan mirip dengan kode di bawah ini:

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

}

Pembungkus Visual Basic

Sepasang ID gambar sederhana dan kelas moniker gambar untuk Visual Basic akan mirip dengan kode di bawah ini:

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

Pembungkus VSCT

Sekumpulan ID gambar untuk file .vsct akan mirip dengan ini:

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