Как .NET Native toolchain обрабатывает управляемые библиотеки компонентов .winmd подробно?Универсальные библиотеки компонентов Windows и родной Winmd
Я знаю, что .NET Native объединяет весь управляемый код из DLL в один исполняемый файл и удаляет неиспользуемый код при компиляции его в native.
Но какой алгоритм используется для управляемых библиотек .winmd? Например, фоновые задачи (например, фоновое фоновое задание) в WinRT размещаются в библиотеке winmd, а затем эти задачи размещаются в системном собственном процессе, который динамически вызывает классы, предоставленные winmd. Как это совместимо с концепцией .NET Native?
Я беспокоюсь, что .NET Native может не преобразовывать управляемый .winmd-код в native и среду, будет отвисеть от среды выполнения .NET для выполнения кода в управляемом winmd, поэтому отказ от преимуществ собственного скомпилированного исполняемого файла. Или как это работает?
Пожалуйста, предоставьте информацию об этом не очень понятном материале. В документации MSDN нет подробной информации об управляемых библиотеках компонентов winmd и .NET Native toolchain.
Это просто метаданные, не отличаются вообще из метаданных .NET в сборки .NET. Он описывает типы, экспортируемые из модуля. Кроме того, что он также работает для неуправляемого кода, вы также можете написать такую фоновую задачу на C++. Фактически формат .winmd * точно * совпадает с форматом метаданных .NET, вы можете использовать декомпилятор .NET, например ildasm.exe, чтобы посмотреть на него. Ничего особенно мистического в этом, это «беспокойство» бессмысленно. –
@HansPassant Мой вопрос в том, как он работает вместе с .NET-родной toolchain. –