.NETネイティブツールチェーンは管理された.winmdコンポーネントライブラリを詳細に扱う方法を教えてください。ユニバーサルWindows .NETネイティブおよびwinmdコンポーネントライブラリ
.NETネイティブでDLLからのすべてのマネージコードを1つの実行可能ファイルにマージし、ネイティブにコンパイルするときに未使用のコードを削除することがわかりました。
しかし、.winmd管理ライブラリにはどのアルゴリズムが使用されていますか?たとえば、WinRTのバックグラウンドタスク(オーディオバックグラウンドタスクなど)はwinmdライブラリでホストされ、これらのタスクはwinmd提供クラスを動的に呼び出すシステム提供のネイティブプロセス内でホストされます。 .NETネイティブコンセプトとどのように互換性がありますか?
.NETネイティブで管理された.winmdコードがネイティブに変換されず、環境が.NETランタイムにフォールバックされて管理されたwinmdでコードが実行されるため、ネイティブコンパイル済み実行可能ファイルの利点が失われる可能性があります。またはそれはどのように機能しますか?
この情報はあまり明確ではありません。 MSDNのドキュメントには、管理されたwinmdコンポーネントライブラリと.NETネイティブツールチェーンに関する詳細情報はありません。
それは.NETアセンブリ内の.NETメタデータからまったく異なる、メタデータだけではありません。モジュールからエクスポートされるタイプについて説明します。それはアンマネージドコードでも動作する点を除いて、このようなバックグラウンドタスクをC++でも書くことができます。実際、.winmdの形式は.NETメタデータの形式とまったく同じ*ですので、ildasm.exeのような.NETデコンパイラを使用して見ることができます。それについて特に神秘的なものはありませんが、この「心配」は無意味です。 –
@HansPassant私の質問は、.NETネイティブツールチェーンとどのように連携するかです。 –