设置/覆盖应用程序部署文件夹

时间:2013-01-18 15:43:09

标签: xamarin.android

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

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

如果我有一个包含应用程序和一些插件的解决方案,那么当我开始调试时,我希望这些文件以适当的结构部署。

1 个答案:

答案 0 :(得分:0)

你可以把插件写成android资产(见下面的截图)。 请注意: 您可能需要将扩展​​名更改为.mp3。见here。我虽然没有这个问题。

enter image description here

一旦这样做,您应该能够使用资产管理器获取资产。您可以将它们复制到不同的文件夹或对它们执行任何操作。这是一个将它们读入内存并写出名称的示例。

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));
    }

}