Condividi tramite


Winmdexp.exe (strumento di esportazione dei metadati di Windows Runtime)

Lo strumento di esportazione dei metadati di Windows Runtime (Winmdexp.exe) trasforma un modulo .NET Framework in un file contenente i 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 di metadati, il che significa che gli assembly di .NET Framework non sono automaticamente utilizzabili come componenti di Windows Runtime. Il processo di trasformazione di un modulo .NET Framework in un componente Windows Runtime viene definito 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 di componente Windows Runtime , che si trova 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 e un passaggio di compilazione successivo chiama Winmdexp.exe per esportare il file winmdobj in un file con estensione winmd. Questo è il modo consigliato per compilare un componente Windows Runtime. Usare Winmdexp.exe direttamente quando si vuole un maggiore controllo sul processo di compilazione rispetto a 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, usare l'opzione del /target compilatore con la winmdobj destinazione. 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à generato 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 generato dal compilatore con winmdmodule.
/modulepdb: symbolfile

/mp: symbolfile
Specifica il nome del file PDB (Program Database) che contiene i simboli per winmdmodule.
/nowarn: warning Elimina il numero di avviso specificato. Per un avviso, specificare solo la parte numerica del codice di errore, senza zeri iniziali.
/out: file

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

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

/r: winmd
Specifica un file di metadati (con estensione 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 i messaggi di output devono trovarsi nella codifica UTF-8.
/warnaserror+ Specifica che tutti gli avvisi devono essere considerati come errori.
@ responsefile Specifica un file di risposta (con estensione rsp) che contiene opzioni (e facoltativamente winmdmodule). Ogni riga in responsefile deve contenere un singolo argomento o opzione.

Osservazioni:

Winmdexp.exe non è progettato per convertire un assembly .NET Framework arbitrario in un file con estensione winmd. Richiede un modulo compilato con l'opzione /target:winmdobj e si applicano restrizioni aggiuntive. L'aspetto più importante di queste restrizioni è che tutti i tipi esposti nella superficie API dell'assembly devono essere tipi 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 è illustrato nell'articolo Supporto di .NET Framework per le app di Windows Store e Windows Runtime. Nel processo, alcuni tipi di Windows Runtime di uso comune 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> .

Vedere anche