Winmdexp.exe (Strumento di esportazione di metadati di Windows Runtime)

Lo strumento di esportazione dei metadati di Windows Runtime (Winmdexp.exe) trasforma un modulo .NET Framework in un file che contiene metadati di Windows Runtime. Anche se gli assembly .NET Framework e i file di metadati di Windows Runtime usano lo stesso formato fisico, esistono differenze nel contenuto delle tabelle dei metadati, con la conseguenza che gli assembly .NET Framework non sono automaticamente utilizzabili come componenti di Windows Runtime. Il processo di trasformazione di un modulo .NET Framework in un componente di Windows Runtime è denominato esportazione. In .NET Framework 4.5 e 4.5.1 il file di metadati Windows (winmd) risultante contiene sia i metadati che l'implementazione.

Quando si usa il modello Componente Windows Runtime, disponibile in Windows Store per C# e Visual Basic in Visual Studio 2013 o Visual Studio 2012, la destinazione del compilatore è un file con estensione winmdobj. Un successivo passaggio di compilazione chiama Winmdexp.exe per esportare il file con estensione winmdobj in un file con estensione winmd. Questo è il modo consigliato di compilare un componente di Windows Runtime. Utilizzare direttamente Winmdexp.exe quando si desidera un maggiore controllo sul processo di compilazione rispetto a quello offerto da Visual Studio.

Viene installato automaticamente con Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per gli sviluppatori di Visual Studio o Visual Studio Developer PowerShell.

Al prompt dei comandi digitare quanto segue:

Sintassi

winmdexp [options] winmdmodule  

Parametri

Argomento o opzione Descrizione
winmdmodule Specifica il modulo (.winmdobj) da esportare. È consentito un solo modulo. Per creare questo modulo, utilizzare l'opzione del compilatore /target con destinazione winmdobj. Vedere -target:winmdobj (opzioni del compilatore C#) o -target (Visual Basic).
/docfile: docfile

/d: docfile
Specifica il file di documentazione XML di output che verrà prodotto da Winmdexp.exe. In .NET Framework 4.5 il file di output è essenzialmente uguale al file di documentazione XML di input.
/moduledoc: docfile

/md: docfile
Specifica il nome del file di documentazione XML che il compilatore ha creato con winmdmodule.
/modulepdb: symbolfile

/mp: symbolfile
Specifica il nome del file del database di programma (PDB) contenente i simboli per winmdmodule.
/nowarn: warning Non visualizza il numero di avviso specificato. Per warning, fornire solo la parte numerica del codice di errore, senza zeri iniziali.
/out: file

/o: file
Specifica il nome del file di metadati di Windows (.winmd) di output.
/pdb: symbolfile

/p: symbolfile
Specifica il nome del file del database di programma (PDB) di output che conterrà i simboli per il file di metadati di Windows (.winmd) esportato.
/reference: winmd

/r: winmd
Specifica un file di metadati (.winmd o assembly) a cui fare riferimento durante l'esportazione. Se si usano gli assembly di riferimento in "\Programmi (x86)\Reference Assemblies\Microsoft\Framework\. NETCore\v4.5" ("\Programmi\..." nei computer a 32 bit), includere riferimenti sia a System.Runtime.dll che a mscorlib.dll.
/utf8output Specifica che la codifica dei messaggi di output deve essere UTF-8.
/warnaserror+ Specifica di considerare tutti gli avvisi come errori.
@ responsefile Specifica un file di risposta (.rsp) contenente le opzioni (e facoltativamente winmdmodule). Ogni riga in responsefile deve contenere un solo argomento o opzione.

Osservazioni:

Winmdexp.exe non è progettato per convertire un assembly .NET Framework arbitrario in un file .winmd. Richiede un modulo compilato con l'opzione /target:winmdobj e prevede delle restrizioni aggiuntive. La più importante di queste restrizioni è che tutti i tipi esposti nella superficie dell'API dell'assembly devono essere tipi di Windows Runtime. Per altre informazioni, vedere la sezione "Dichiarazione dei tipi nei componenti Windows Runtime" dell'articolo Creazione di componenti Windows Runtime in C# e Visual Basic.

Quando si scrive un'app di Windows 8.x Store o un componente Windows Runtime con C# o Visual Basic, .NET Framework fornisce il supporto per rendere più naturale la programmazione con Windows Runtime. Questo argomento viene illustrato nell'articolo Supporto .NET Framework per applicazioni Windows Store e Windows Runtime. Nel processo, alcuni tipi di uso comune di Windows Runtime vengono mappati ai tipi .NET Framework. Winmdexp.exe inverte questo processo e produce una superficie API che usa i tipi di Windows Runtime corrispondenti. Ad esempio, i tipi costruiti dall'interfaccia eseguono il IList<T> mapping ai tipi costruiti dall'interfaccia di Windows Runtime IVector<T> .

Vedi anche