Miguel, Thanks for this, better cross-compiling support is huge given I don’t need to have a ton of CI agents handling it. However, something seems to break for me when using the mkbundle that ships with 4.4.2.
mkbundle --deps --static -o myApp MyApp.exe *.dll fails with an exception looking for an old version of a .dll, in my case Npgsql: Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Npgsql, Version=2.2.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' or one of its dependencies File name: 'Npgsql, Version=2.2.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' at System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) <0x19f78c0 + 0x000b0> in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.AppDomain:Load (string,System.Security.Policy.Evidence,bool) at System.Reflection.Assembly.ReflectionOnlyLoad (System.String assemblyString) <0x1a72eb0 + 0x00038> in <filename unknown>:0 at IKVM.Reflection.Universe.DefaultResolver (System.String refname, Boolean throwOnError) <0x6e7890 + 0x00057> in <filename unknown>:0 at IKVM.Reflection.Universe.Load (System.String refname, IKVM.Reflection.Module requestingModule, Boolean throwOnError) <0x6e6f68 + 0x0006f> in <filename unknown>:0 at IKVM.Reflection.Universe.Load (System.String refname) <0x6e6f30 + 0x00027> in <filename unknown>:0 at MakeBundle.QueueAssembly (System.Collections.Generic.List`1 files, System.String codebase) <0x7b44b0 + 0x001ab> in <filename unknown>:0 No problems bundling with mkbundle from 4.2.3 - it runs there in CI all the time. Did something in this new version change how assemblies are located? Thanks, Dave > On Aug 9, 2016, at 5:35 PM, Miguel de Icaza via Mono-list > <[email protected]> wrote: > > > From: Miguel de Icaza <[email protected] <mailto:[email protected]>> > Subject: New: cross-compiling with mkbundle > Date: August 9, 2016 at 2:02:11 PM EDT > To: "[email protected] <mailto:[email protected]>" > <[email protected] <mailto:[email protected]>> > > > Hello folks, > > The new mkbundle tool in Mono no longer requires an installed compiler, and > you can use it to cross compile. > > Would love to get some feedback from you guys. > > First, get a list of all cross-platform targets available, like this: > > mkbundle –list-targets > > Then, find out which version of Mono you have on your system: > > mono –version > > Use this to pick the right version and fetch it, for example, to cross > compile to Linux/64 from a Mac do: > > mkbundle –fetch-target 4.4.2-linux-libc2.13-amd64 > > Repeat for as many cross-platform targets as wanted. > > Now take your executable that you want to bundle and bundle it up for this > platform: > > mkbundle –cross 4.4.2-linux-libc2.13-amd64 demo.exe demo-native > > Now, you can copy that “demo-native” executable to your Linux machine and run > it. > > I have done very minimal testing on this, and some features are missing, > things that I want to add: > · Ship native libraries > · Add support for shipping the LLVM runtime as an option > · Add support to target different Mono versions, not just the same > you have installed > > Miguel. > > > > _______________________________________________ > Mono-list maillist - [email protected] > <mailto:[email protected]> > http://lists.dot.net/mailman/listinfo/mono-list > <http://lists.dot.net/mailman/listinfo/mono-list>
_______________________________________________ Mono-list maillist - [email protected] http://lists.dot.net/mailman/listinfo/mono-list
