Создание DLL Compact Framework с помощью ilasm.exe Assembler

Поэтому я пытаюсь изменить Compact Framework для экспорта функции C. Он работает отлично на Full Framework.

Используемый метод описан здесь. https://sites.google.com/site/robertgiesecke/Home/uploads/csharpprojecttemplateforunmanagedexports

В любом случае проблема заключается в том, что если я возьму Compact Framework Dll, разберу его, а затем снова соберу, то, похоже, снова соберу его как Full Framework Dll.

Любая идея, как я могу заставить его пересобрать как Compact Framework Dll.

1 ответ

Нет разумного способа сделать это.

Компилятор Compact Framework поддерживает C# и VB.NET. Управляемый C++ никогда не поддерживался, хотя в некоторых экспериментах его можно было создать для генерации сборки. Проблема в том, что CF не поддерживает все коды операций, которые обычно используются в.NET, поэтому, даже если вам удастся заставить его строить для цели CF, нет никакого способа гарантировать, что он не вставит неподдерживаемые коды операций (компиляторы CF делают эту фильтрацию за вас).

Другая проблема, с которой вы столкнулись, заключается в том, что собственный код (что бы ни загружал вашу DLL) не может разместить CLR в компактной среде - сантехника для хостинга EE просто не существует вне процесса управляемого приложения. Таким образом, даже если вы каким-то образом получили свою DLL для компиляции, экспортировали точку входа и не имели недопустимых кодов операций, собственный процесс не мог бы раскрутить EE для загрузки управляемых битов в сборку.

Другие вопросы по тегам