Partilhar via


Winmdexp.exe (Ferramenta de Exportação de Metadados do Tempo de Execução do Windows)

A Ferramenta de Exportação de Metadados do Tempo de Execução do Windows (Winmdexp.exe) transforma um módulo do .NET Framework em um arquivo que contém metadados do Tempo de Execução do Windows. Embora os assemblies do .NET Framework e os arquivos de metadados do Tempo de Execução do Windows usem o mesmo formato físico, há diferenças no conteúdo das tabelas de metadados, o que significa que os assemblies do .NET Framework não são automaticamente utilizáveis como Componentes do Tempo de Execução do Windows. O processo de transformar um módulo do .NET Framework em um componente do Tempo de Execução do Windows é 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ê usa o modelo de componente do Tempo de Execução do Windows, que está localizado em Windows Store para C# e Visual Basic no Visual Studio 2013 ou Visual Studio 2012, o destino do compilador é um arquivo .winmdobj e uma etapa de compilação subsequente chama Winmdexp.exe para exportar o arquivo .winmdobj para um arquivo .winmd. Essa é a maneira recomendada de criar um componente do Tempo de Execução do Windows. Use Winmdexp.exe diretamente quando quiser mais controle sobre o processo de compilação do que o Visual Studio fornece.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

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 ser exportado. Apenas um módulo é permitido. Para criar este módulo, use a /target opção de compilador com o winmdobj destino. Consulte -target:winmdobj (C# Compiler Options) ou -target (Visual Basic).
/docfile: docfile

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

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

/mp: symbolfile
Especifica o nome do arquivo de banco de dados de 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 arquivo de metadados do Windows (.winmd) de saída.
/pdb: symbolfile

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

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

Observações

Winmdexp.exe não foi projetado para converter um assembly arbitrário do .NET Framework em um arquivo .winmd. Ele requer um módulo que é compilado com a /target:winmdobj opção, e restrições adicionais se aplicam. A mais importante dessas restrições é que todos os tipos expostos na superfície da API do assembly devem ser tipos do Tempo de Execução do Windows. Para obter mais informações, consulte a seção "Declarando tipos em componentes do Tempo de Execução do Windows" do artigo Criando componentes do Tempo de Execução do Windows em C# e Visual Basic.

Quando você escreve um aplicativo da Windows Store 8.x ou um componente do Tempo de Execução do Windows com C# ou Visual Basic, o .NET Framework fornece suporte para tornar a programação com o Tempo de Execução do Windows mais natural. Isso é discutido no artigo Suporte do .NET Framework para aplicativos da Windows Store e Tempo de Execução do Windows. No processo, alguns tipos comumente usados do Tempo de Execução do Windows são mapeados para tipos do .NET Framework. Winmdexp.exe reverte esse processo e produz uma superfície de API que usa os tipos correspondentes do Tempo de Execução do Windows. Por exemplo, os tipos que são construídos a partir da interface são mapeados IList<T> para tipos que são construídos a partir da interface do Tempo de Execução do Windows IVector<T> .

Consulte também