Winmdexp.exe (Ferramenta de Exportação de Metadados Windows Runtime)

A Ferramenta de Exportação de Metadados Windows Runtime (Winmdexp.exe) transforma um módulo de .NET Framework num ficheiro que contém metadados Windows Runtime. Embora .NET Framework assemblagens e Windows Runtime ficheiros de metadados utilizem o mesmo formato físico, existem diferenças no conteúdo das tabelas de metadados, o que significa que .NET Framework assemblagens não são automaticamente utilizáveis como componentes Windows Runtime. O processo de transformação de um módulo .NET Framework num componente Windows Runtime é referido como exportação. No .NET Framework 4.5 e 4.5.1, o ficheiro de metadados do Windows resultante (.winmd) contém metadados e implementação.

Quando utiliza o modelo componente do Windows Runtime, que está localizado em Loja Windows para C# e Visual Basic no Visual Studio 2013 ou Visual Studio 2012, o destino do compilador é um ficheiro .winmdobj e um passo de compilação subsequente chama Winmdexp.exe para exportar o ficheiro .winmdobj para um ficheiro .winmd. Esta é a forma recomendada de criar um componente Windows Runtime. Utilize Winmdexp.exe diretamente quando quiser ter mais controlo sobre o processo de compilação do que o Visual Studio fornece.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, utilize a Linha de Comandos para Programadores do Visual Studio ou o PowerShell para Programadores do Visual Studio.

Na linha de comandos, escreva o seguinte:

Sintaxe

winmdexp [options] winmdmodule  

Parâmetros

Argumento ou opção Description
winmdmodule Especifica o módulo (.winmdobj) a exportar. Só é permitido um módulo. Para criar este módulo, utilize a opção /target compilador com o winmdobj destino. Veja -target:winmdobj (C# Opções do Compilador) ou -target (Visual Basic).
/docfile: docfile

/d: docfile
Especifica o ficheiro de documentação XML de saída que Winmdexp.exe produzirá. No .NET Framework 4.5, o ficheiro de saída é essencialmente o mesmo que o ficheiro de documentação XML de entrada.
/moduledoc: docfile

/md: docfile
Especifica o nome do ficheiro de documentação XML que o compilador produziu com winmdmodule.
/modulepdb: symbolfile

/mp: symbolfile
Especifica o nome do ficheiro de base de dados do programa (PDB) que contém símbolos para winmdmodule.
/nowarn: warning Suprime o número de aviso especificado. Para aviso, forneça apenas a parte numérica do código de erro, sem zeros à esquerda.
/out: file

/o: file
Especifica o nome do ficheiro de metadados do Windows de saída (.winmd).
/pdb: symbolfile

/p: symbolfile
Especifica o nome do ficheiro de base de dados do programa de saída (PDB) que irá conter os símbolos do ficheiro de metadados do Windows exportado (.winmd).
/reference: winmd

/r: winmd
Especifica um ficheiro de metadados (.winmd ou assemblagem) a referenciar durante a exportação. Se utilizar as assemblagens de referência em "\Programas (x86)\Assemblagens de Referência\Microsoft\Framework\. NETCore\v4.5" ("\Programas\..." em computadores de 32 bits), inclua referências para System.Runtime.dll e mscorlib.dll.
/utf8output Especifica que as mensagens de saída devem estar na codificação UTF-8.
/warnaserror+ Especifica que todos os avisos devem ser tratados como erros.
@ responsefile Especifica um ficheiro de resposta (.rsp) que contém opções (e opcionalmente winmdmodule). Cada linha em responsefile deve conter um único argumento ou opção.

Observações

Winmdexp.exe não foi concebido para converter uma assemblagem de .NET Framework arbitrária num ficheiro .winmd. Requer um módulo compilado com a opção /target:winmdobj e aplicam-se restrições adicionais. A mais importante destas restrições é que todos os tipos expostos na superfície da API da assemblagem têm de ser Windows Runtime tipos. Para obter mais informações, veja a secção "Declarar tipos no Windows Runtime Componentes" do artigo Criar Componentes Windows Runtime em C# e Visual Basic.

Quando escreve uma aplicação da Loja Windows 8.x ou um componente de Windows Runtime com C# ou Visual Basic, o .NET Framework fornece suporte para tornar a programação com o Windows Runtime mais natural. Isto é abordado no artigo .NET Framework Suporte para Aplicações e Windows Runtime da Loja Windows. No processo, alguns tipos de Windows Runtime utilizados frequentemente são mapeados para tipos de .NET Framework. Winmdexp.exe inverte este processo e produz uma superfície de API que utiliza os tipos de Windows Runtime correspondentes. Por exemplo, os tipos que são construídos a IList<T> partir do mapa de interface para os tipos que são construídos a partir da interface de Windows RuntimeIVector<T>.

Ver também