資訊清單的程式碼
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
程式碼工具的資訊清單是主控台應用程式,Visual Studio 映像服務接受.imagemanifest 檔案,並產生的包裝函式的檔案或檔案參考 c + +、 C#、 VB 或 Visual Studio 擴充功能的.vsct 檔案中的影像資訊清單的值。 此工具會產生包裝函式可以用於要求的映像檔從 Visual Studio 映像服務直接,或傳遞到 Api 的資訊清單的值,如果程式碼不會處理任何它自己的 UI 和轉譯的檔案。
如何使用工具
語法
ManifestToCode /manifest:>/language:
>>
引數
參數名稱 | 備註 | 必要或選用 |
/manifest | 要用來建立或更新的程式碼包裝函式映像資訊清單的路徑。 | 必要 |
/language | 用來產生程式碼包裝函式的語言。 有效值︰ CPP、 c + +、 CS、 CSharp、 C#、 VB 或 VSCT 值不區分大小寫。 VSCT 語言選項、 /monikerClass、 /classAccess 和 /namespace 選項會被忽略。 |
必要 |
/imageIdClass | ImageIdClass 和相關聯的工具所建立的檔案名稱。 C + + 語言選項時,會產生只有.h 檔案。 預設值︰ >\MyImageIds。> |
Optional |
/monikerClass | MonikerClass 和相關聯的工具所建立的檔案名稱。 C + + 語言選項時,會產生只有.h 檔案。 這會忽略 VSCT 語言。 預設值︰ >\MyMonikers。> |
Optional |
/classAccess | ImageIdClass 和 monikerClass 存取修飾詞。 請確定所指定語言的存取修飾詞無效。 這會忽略 VSCT 語言選項。 預設︰ 公用 |
Optional |
/namespace | 在程式碼包裝函式中定義的命名空間。 這會忽略 VSCT 語言選項。 其中一個 '。 ' 或 ':: ' 是有效的命名空間的分隔符號,無論所選擇的語言選項。 預設︰ MyImages |
Optional |
/noLogo | 設定這個旗標,就會停止列印的產品和著作權資訊。 | Optional |
/? | 列印說明資訊。 | Optional |
/help | 列印說明資訊。 | Optional |
範例
ManifestToCode /manifest:D:\MyManifest.imagemanifest /language: csharp
ManifestToCode /manifest:D:\MyManifest.imagemanifest /language:C++ /namespace︰ 我:: 命名空間 /imageIdClass:MyImageIds /monikerClass:MyMonikers /classAccess:friend
ManifestToCode /manifest:D:\MyManifest.imagemanifest /language:VSCT /imageIdClass:MyImageIds
備註
我們建議您使用這項工具與資訊清單資源的工具所產生的影像資訊清單。
此工具只會查看符號項目,以產生程式碼包裝函式。 如果映像資訊清單包含沒有符號,產生的程式碼包裝函式將會是空的。 如果沒有映像或映像的資訊清單中未使用的符號的映像的集合,則會予以排除從程式碼包裝函式。
範例輸出
C# 包裝函式
簡單的映像識別碼] 和 [映像 moniker 的一組類別的 C# 會類似下列程式碼︰
//-----------------------------------------------------------------------------
// <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 + + 包裝函式
簡單的映像識別碼] 和 [映像 moniker 的一組類別的 c + + 會類似下列程式碼︰
//-----------------------------------------------------------------------------
// <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 包裝函式
簡單的映像識別碼] 和 [映像 moniker 的一組類別,如 Visual Basic 會類似下列程式碼︰
' -----------------------------------------------------------------------------
' <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 包裝函式
影像 Id.vsct 檔的一組會如下所示︰
<?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="https://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>