0

Mono for Android でプロジェクト展開フォルダーを設定またはオーバーライドする方法はありますか? たとえば、私のアプリケーションは現在、/data/data/SolutionEngine/files/.__override__

このアプリケーションの性質は、Reflection を使用してプラグインをロードすることであり、既定で/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 に答える