mkbundle
mkbundleのwin32版パッチがメーリングリストに流れていたので当てて見ました。ウチで動作させるにはちょっと修正が必要でして、
static void QueueAssembly (ArrayList files, string codebase) { string codebase_ = codebase.Replace("\\", "/"); if (files.Contains (codebase_)) return; files.Add (codebase_); Assembly a = Assembly.LoadFrom (new Uri(codebase_).LocalPath); if (!autodeps) return; foreach (AssemblyName an in a.GetReferencedAssemblies ()) { a = Assembly.Load (an); QueueAssembly (files, a.CodeBase); } }
上記のように\を/に変換しないとUriクラスが例外を投げます。取りあえず、mkbundleが動くようになったのですが、使い方がよく分からなかったりして。(^^;
予想では.NETのアセンブリに必要なランタイムなどを全部かき集めてきて、stubモジュール叩けば動作するようになると思っていたのですが、mono-1.dllが必要だったり、mono-1.dllも色々dllをインポートしていたりと、変換したアセンブリをそのまま配布出来るものでは無いようです。