0

有没有办法在 Mono for Android 中设置或覆盖项目部署文件夹?例如,我的应用程序现在部署到/data/data/SolutionEngine/files/.__override__

该应用程序的本质是它使用反射加载插件,并且默认情况下它会在/Adapters应用程序根目录的子文件夹中查找。这就是它在桌面和 Compact Framework 上的工作方式,所以为了简单起见,我们希望继续在 Android 上做同样的事情。

如果我有一个包含应用程序和一些插件的单一解决方案,我希望在我开始调试时将这些文件部署在正确的结构中。

4

1 回答 1

0

您可以将插件写为 android 资产(请参见下面的屏幕截图)。请注意:您可能需要将扩展​​名更改为 .mp3。见这里。不过我没有这个问题。

在此处输入图像描述

完成此操作后,您应该能够使用 Asset Manager 获取资产。您可以将它们复制到不同的文件夹或对它们执行任何操作。这是将它们读入内存并写出名称的示例。

const String pluginPath = "Plugins";

var pluginAssets = Assets.List(pluginPath);
foreach (var pluginAsset in pluginAssets)
{
    var file = Assets.Open(pluginPath + Java.IO.File.Separator + pluginAsset);

    using (var memStream = new MemoryStream())
    {
        file.CopyTo(memStream);

        //do something fun.
        var assembly = System.Reflection.Assembly.Load(memStream.ToArray());
        Console.WriteLine(String.Format("Loaded: {0}", assembly.FullName));
    }

}
于 2013-01-18T18:59:35.973 回答