Winmdexp.exe (Ferramenta de Exportação de Metadados do Windows Runtime )
A Ferramenta de Exportação dos Metadados Windows Runtime (Winmdexp.exe) transforma um módulo do .NET Framework em um arquivo que contém metadados do Windows Runtime. Embora os assemblies do .NET Framework e os arquivos de metadados do Windows Runtime usem o mesmo formato físico, existem diferenças no conteúdo das tabelas de metadados, o que significa que os assemblies do .NET Framework não são automaticamente úteis como Componentes do Tempo de Execução do Windows. O processo de transformar um módulo do .NET Framework em um componente do Windows Runtime é conhecido como exportação. No .NET Framework 4.5 e 4.5.1, o arquivo de metadados do Windows (.winmd) resultante contém metadados e implementação.
Quando você usar o modelo componente do Windows Runtime, localizado na Windows Store para C# e Visual Basic no Visual Studio 2013 ou Visual Studio 2012, o alvo do compilador será um arquivo .winmdobj e uma etapa de compilação subsequente chamará Winmdexp.exe para exportar o arquivo .winmdobj para um arquivo .winmd. Essa é a maneira recomendada para compilar um componente do Windows Runtime. Use Winmdexp.exe diretamente quando você quiser mais controle sobre o processo de compilação do que o dado pelo Visual Studio.
Essa ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Prompt de Comando do Desenvolvedor do Visual Studio ou o PowerShell do Desenvolvedor do Visual Studio.
No prompt de comando, digite o seguinte:
Sintaxe
winmdexp [options] winmdmodule
Parâmetros
Argumento ou opção | Descrição |
---|---|
winmdmodule |
Especifica o módulo (.winmdobj) a ser exportado. Somente um módulo é permitido. Para criar esse módulo, use a opção do compilador /target com o destino winmdobj . Consulte -target:winmdobj (Opções do compilador C#) ou -target (Visual Basic). |
/docfile: docfile /d: docfile |
Especifica o arquivo da documentação XML de saída que Winmdexp.exe produzirá. No .NET Framework 4.5, o arquivo de saída é basicamente igual ao arquivo de documentação XML da entrada. |
/moduledoc: docfile /md: docfile |
Especifica o nome do arquivo de documentação XML que o compilador produziu com winmdmodule . |
/modulepdb: symbolfile /mp: symbolfile |
Especifica o nome do arquivo PDB (banco de dados do programa) 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 arquivo de metadados do Windows (.winmd) de saída. |
/pdb: symbolfile /p: symbolfile |
Especifica o nome do arquivo PDB de saída que conterá os símbolos do arquivo de metadados do Windows (.winmd) exportado. |
/reference: winmd /r: winmd |
Especifica um arquivo de metadados (.winmd ou assembly) para fazer referencia durante a exportação. Se você usar os assemblies de referência em "\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5" ("\Program Files\..." em computadores 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 tratado como erros. |
@ responsefile |
Especifica um arquivo de resposta (.rsp) que contém opções (ou winmdmodule ). Cada linha em responsefile deve conter um único argumento ou opção. |
Comentários
Winmdexp.exe não foi projetado para converter um assembly do .NET Framework arbitrário para um arquivo .winmd. Ele exige um módulo compilado com a opção /target:winmdobj
, e as restrições adicionais se aplicam. A mais importante dessas limitações é que todos os tipos expostos na superfície da API do assembly precisam ser tipos do Windows Runtime. Para obter mais informações, consulte a seção “Declarando tipos em Componentes do Windows Runtime” do artigo Criando Componentes do Windows Runtime no C# e no Visual Basic.
Quando você grava um aplicativo do Windows 8.x Store ou um componente do Tempo de Execução do Windows com C# ou Visual Basic, o .NET Framework dá suporte para deixar a programação com o Windows Runtime mais natural. Isso é abordado no artigo Suporte do .NET Framework para Aplicativos da Windows Store e do Windows Runtime. No processo, alguns tipos do Windows Runtime mais usados são mapeados para tipos do .NET Framework. Winmdexp.exe reverte esse processo e produz uma superfície de API que usa os tipos do Windows Runtime correspondentes. Por exemplo, tipos construídos com base na interface IList<T> são mapeados para tipos construídos com base na interface IVector<T> do Windows Runtime.