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

Xamarin.android 设置/覆盖应用程序部署文件夹,xamarin.android,Xamarin.android,有没有办法在Mono for Android中设置或覆盖项目部署文件夹?例如,我的应用程序现在部署到/data/data/SolutionEngine/files/.\uuuu override.\uuuu 应用程序的本质是使用反射加载插件,默认情况下,它会从应用程序根目录中查看/Adapters子文件夹。这就是它在桌面和紧凑框架上的工作方式,因此为了简单起见,我们希望在Android上继续这样做 如果我有一个单一的解决方案,其中包含应用程序和一些插件,我希望在开始调试时以适当的结构部署这些文件

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

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


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

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

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

conststringpluginpath=“Plugins”;
var pluginasets=Assets.List(pluginPath);
foreach(pluginaset中的var pluginaset)
{
var file=Assets.Open(pluginPath+Java.IO.file.Separator+pluginAsset);
使用(var memStream=new MemoryStream())
{
CopyTo文件(memStream);
//做些有趣的事。
var assembly=System.Reflection.assembly.Load(memStream.ToArray());
WriteLine(String.Format(“Loaded:{0}”,assembly.FullName));
}
}

是的,但我还需要能够调试插件,这似乎不起作用。现在我正在使用一个黑客程序,代码检查调试器是否已连接,以及我们是否在Android上运行,并基于此做出文件夹决策。这很难看,但在我找到更好的解决方案之前,它是有效的。