Для этого, частично следуя этому посту, я особенно использую эту строку кода:
Код: Выделить всё
var runtimeAssemblies = new HashSet(Directory.GetFiles(RuntimeEnvironment.GetRuntimeDirectory(), "*.dll"));Но в эмуляторе Android мое приложение не работает при выпуске
код> только. В конечном итоге я вижу разницу между режимами Debug и Release в RuntimeEnvironment.GetRuntimeDirectory(), которая в конечном итоге приведет к сбою моего приложения.
Действительно, в Debug режим, RuntimeEnvironment.GetRuntimeDirectory() return
/data/data/com.compagnyname.myprojectname/files/.__override__
тогда как в режиме Release он возвращается
/data/user/0/com Вместо этого .compagnyname.myprojectname
.
Покопавшись в оболочке adb, я обнаружил, что оба /data /data/com.compagnyname.myprojectname/files/.__override__ и /data/user/0/com.compagnyname.myprojectname/files/.__override__ будут созданы при запуске проекта в режиме отладки, в котором будут скопированы все необходимые DLL.
Но в режиме Release ни одна из них не присутствует, хотя на нее есть ссылки. Я подозреваю, что DLL каким-то образом встроена/упакована внутри *.apk (?). Но тогда я не могу использовать MetadataLoadContext для разрешения используемой сборки, как упоминалось выше в другом SO. пост.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ctory-maui
Мобильная версия