Winmdexp.exe (Windows 运行时元数据导出工具)

Windows 运行时元数据导出工具(Winmdexp.exe)将 .NET Framework 模块转换为包含 Windows 运行时元数据的文件。 尽管 .NET Framework 程序集和 Windows 运行时元数据文件使用相同的物理格式,但元数据表的内容存在差异,这意味着 .NET Framework 程序集不能自动用作 Windows 运行时组件。 将 .NET Framework 模块转换为 Windows 运行时组件的过程称为 导出。 在 .NET Framework 4.5 和 4.5.1 中,生成的 Windows 元数据 (.winmd) 文件包含元数据和实现。

使用位于 Visual Studio 2013 或 Visual Studio 2012 中适用于 C# 和 Visual Basic 的 Windows 应用商店下的 Windows 运行时组件模板时,编译器目标是 .winmdobj 文件,后续生成步骤调用 Winmdexp.exe 将 .winmdobj 文件导出到 .winmd 文件。 这是生成 Windows 运行时组件的建议方法。 如果希望比 Visual Studio 提供的对生成过程进行更多控制,请直接使用 Winmdexp.exe。

此工具会自动随 Visual Studio 一起安装。 若要运行该工具,请使用 Visual Studio 开发人员命令提示符或 Visual Studio 开发人员 PowerShell

在命令提示符处,键入以下内容:

语法

winmdexp [options] winmdmodule  

参数

参数或选项 DESCRIPTION
winmdmodule 指定要导出的模块 (.winmdobj)。 只允许一个模块。 若要创建此模块,请使用 /target 具有 winmdobj 目标的编译器选项。 请参阅 -target:winmdobj (C# 编译器选项)-target (Visual Basic)。
/docfile: docfile

/d: docfile
指定 Winmdexp.exe 将生成的输出 XML 文档文件。 在 .NET Framework 4.5 中,输出文件实质上与输入 XML 文档文件相同。
/moduledoc: docfile

/md: docfile
指定编译器生成的 winmdmoduleXML 文档文件的名称。
/modulepdb: symbolfile

/mp: symbolfile
指定包含符号 winmdmodule的程序数据库 (PDB) 文件的名称。
/nowarn: warning 取消指定的警告号。 对于 警告,请仅提供错误代码的数字部分,而不提供前导零。
/out: file

/o: file
指定输出 Windows 元数据 (.winmd) 文件的名称。
/pdb: symbolfile

/p: symbolfile
指定输出程序数据库 (PDB) 文件的名称,该文件将包含导出的 Windows 元数据 (.winmd) 文件的符号。
/reference: winmd

/r: winmd
指定要在导出过程中引用的元数据文件(.winmd 或程序集)。 如果在“\Program Files (x86)\Reference Assemblies\Microsoft\Framework\中使用引用程序集。NETCore\v4.5“ (”\Program Files\...”在 32 位计算机上,包括对 System.Runtime.dll 和 mscorlib.dll的引用。
/utf8output 指定输出消息应采用 UTF-8 编码。
/warnaserror+ 指定应将所有警告视为错误。
@ responsefile 指定包含选项(可选) winmdmodule的响应 (.rsp) 文件。 每个 responsefile 行应包含单个参数或选项。

注解

Winmdexp.exe 不设计为将任意 .NET Framework 程序集转换为 .winmd 文件。 它需要使用选项编译 /target:winmdobj 的模块,并应用其他限制。 其中最重要的限制是程序集的 API 图面中公开的所有类型必须是 Windows 运行时类型。 有关详细信息,请参阅在 C# 和 Visual Basic 中创建 Windows 运行时组件一文的“声明 Windows 运行时组件”部分。

当你使用 C# 或 Visual Basic 编写 Windows 8.x 应用商店应用或 Windows 运行时组件时,.NET Framework 会提供支持,以便更自然地使用 Windows 运行时进行编程。 本文介绍了 Windows 应用商店应用和 Windows 运行时的 .NET Framework 支持。 在此过程中,一些常用的 Windows 运行时类型映射到 .NET Framework 类型。 Winmdexp.exe 反转此过程,并生成使用相应 Windows 运行时类型的 API 图面。 例如,从 IList<T> 接口构造的类型映射到从 Windows 运行时 IVector<T> 接口构造的类型。

另请参阅