Winmdexp.exe (outil d'exportation de métadonnées Windows Runtime)

L'outil Metadata Export Windows Runtime (Winmdexp.exe) transforme un module .NET Framework en un fichier qui contient des métadonnées Windows Runtime. Bien que les assemblys .NET Framework et les fichiers de métadonnées Windows Runtime utilisent le même format physique, il y a des différences dans le contenu des tables de métadonnées. Autrement dit, les assemblys .NET Framework ne sont pas utilisables automatiquement comme composants Windows Runtime. Le processus qui transforme un module .NET Framework en composant Windows Runtime s’appelle exportation. Dans .NET Framework 4.5 et 4.5.1, le fichier de métadonnées Windows (.winmd) résultant contient à la fois les métadonnées et l’implémentation.

Quand vous utilisez le modèle Composant Windows Runtime, qui se trouve dans le Windows Store pour C# et Visual Basic dans Visual Studio 2013 ou Visual Studio 2012, la cible du compilateur est un fichier .winmdobj et une étape de génération appelle Winmdexp.exe pour exporter le fichier .winmdobj vers un fichier .winmd. C'est la méthode recommandée pour générer un composant Windows Runtime. Utilisez Winmdexp.exe directement lorsque vous voulez contrôler davantage le processus de génération que Visual Studio le permet.

Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur Visual Studio ou PowerShell pour développeurs Visual Studio.

À l'invite de commandes, tapez :

Syntaxe

winmdexp [options] winmdmodule  

Paramètres

Argument ou option Description
winmdmodule Spécifie le module (.winmdobj) à exporter. Un seul module est autorisé. Pour créer ce module, utilisez l'option de compilateur /target avec la cible winmdobj. Consultez -target:winmdobj (Options du compilateur C#) ou -target (Visual Basic).
/docfile: docfile

/d: docfile
Spécifie le fichier de documentation XML de sortie que Winmdexp.exe produira. Dans .NET Framework 4.5, le fichier de sortie est essentiellement identique au fichier de documentation XML d’entrée.
/moduledoc: docfile

/md: docfile
Spécifie le nom du fichier de documentation XML que le compilateur a produit avec winmdmodule.
/modulepdb: symbolfile

/mp: symbolfile
Indique le nom du fichier de la base de données du programme (PDB) qui contient les symboles pour winmdmodule.
/nowarn: warning Supprime le nombre d'avertissements indiqué. Pour warning, fournissez uniquement la partie numérique du code d'erreur, sans zéro significatif.
/out: file

/o: file
Indique le nom du fichier de métadonnées Windows (.winmd) de sortie.
/pdb: symbolfile

/p: symbolfile
Spécifie le nom du fichier de la base de données du programme (PDB) de sortie qui contiendra les symboles pour le fichier de métadonnées Windows (.winmd) exporté.
/reference: winmd

/r: winmd
Indique un fichier de métadonnées (.winmd ou assembly) à référencer lors de l'exportation. Si vous utilisez des assemblys de référence dans "\Program files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5" ("\Program Files\..." sur les ordinateurs 32 bits), incluez à la fois les références à System.Runtime.dll et mscorlib.dll.
/utf8output Spécifie que les messages de sortie utilisent un encodage en UTF-8.
/warnaserror+ Spécifie que tous les avertissements doivent être traités comme des erreurs.
@ responsefile Spécifie un fichier de réponse (.rsp) qui contient des options (et éventuellement winmdmodule). Chaque ligne dans responsefile doit contenir un seul argument ou une seule option.

Notes

Winmdexp.exe n'est pas conçu pour convertir un assembly. NET Framework arbitraire en un fichier .winmd. Il requiert un module compilé avec l'option /target:winmdobj, et des restrictions supplémentaires s'appliquent. La plus importante de ces restrictions est que tous les types qui sont exposés dans la surface API de l'assembly doivent être de type Windows Runtime. Pour plus d’informations, consultez la section « Déclaration de types dans les composants Windows Runtime » de l’article Création de composants Windows Runtime en C# et Visual Basic.

Lorsque vous écrivez une application du Store Windows 8.x ou un composant Windows Runtime avec C# ou Visual Basic, .NET Framework fournit le support pour effectuer la programmation avec Windows Runtime de manière plus naturelle. Ce sujet est abordé dans l’article Prise en charge .NET Framework pour les applications Windows Store et Windows Runtime. Dans le processus, certains types de Windows Runtime utilisés couramment sont mappés en types .NET Framework. Winmdexp.exe inverse ce processus et produit une surface API qui utilise les types Windows Runtime correspondants. Par exemple, des types à partir de l’interface IList<T> sont mappés à des types construits à partir de l’interface IVector<T> de Windows Runtime.

Voir aussi