2013-01-18 33 views
0

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

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

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

回答

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

} 
+0

是的,但我需要能够调试插件,这似乎并不工作。现在我正在使用hack,代码检查是否附加了调试器,以及我们是否在Android上运行,并根据此文件做出文件夹决定。这很丑陋,但有效,直到我找到更好的解决方案。 – ctacke