Hello,

In Mono 1.9.1, the libgdiplus library mappings are contained in the
System.Drawing.dll.config file, and not in the machine.config. Is this
file still exists ?

Could you post the log of the NAnt build process and take a look at
your build folder: it must contains the config files that have been
modified before their inclusion.

Maybe there is some changes in the Mono 2.0 that breaks the whole
relocating process.

Regards, Laurent Etiemble.

2008/10/15 Anthony Bowker <[EMAIL PROTECTED]>:
> Hi everyone,
>
>
>
> I am having a terrible time building a native binary with mkbundle of my
> Application.  My App uses Monoobjc.Cocoa and System.Drawing.  The latter
> requires gdiplus.dll.
>
>
>
> I am using the MonoFramework-2.0_4 and when Mono is installed on the
> machine, the machine.config file contains these two dllmap lines to help
> apps locate gdiplus.dll:
>
>       <dllmap dll="gdiplus.dll"
> target="/Library/Frameworks/Mono.framework/Versions/2.0/lib/libgdiplus.dylib"
> />
>
>       <dllmap dll="gdiplus"
> target="/Library/Frameworks/Mono.framework/Versions/2.0/lib/libgdiplus.dylib"
> />
>
>
>
> I am using the excellent NAnt.Monobjc.dll mkbundle task to create my native
> binary, with the following fragments:
>
>     <mkbundle exe="${build.dir}/MyApp.exe"
>
>         todir="${macbuild.dir}"
>
>         target="MACOSX_10_4"
>
>         universal="true"
>
>         rebuild="true">
>
>       <search-in basedir="${build.dir}"/>
>
>     </mkbundle>
>
>     <mkappl name="MyApp"
>
>         todir="${mac.dir}"
>
>         native="true"
>
>         icon="${build.dir}/Mac/MyApp.icns"
>
>         infoplist="${build.dir}/Mac/Info.plist">
>
>
>
>       <!-- Copy executable -->
>
>       <copy-in-macos basedir="${macbuild.dir}">
>
>         <include name="MyApp"/>
>
>         <include name="lib*.dylib"/>
>
>       </copy-in-macos>
>
>
>
>       <!-- Copy other files or folder -->
>
>       <copy-in-resources basedir="${build.dir}/Mac">
>
>         <include name="MyShell.nib/*"/>
>
>       </copy-in-resources>
>
>     </mkappl>
>
>
>
> When I add the following element, it correctly copies the libgdiplus.dylib
> and depenedent files to the MacOS folder of my bundle
>
>     <with-lib
> file="/Library/Frameworks/Mono.Framework/Versions/2.0/lib/libgdiplus.dylib"
> />
>
>
>
> But when I run the app without Mono installed on the machine, I still get
> the System.DllNotFoundException: gdiplus.dll
>
>
>
> So it is obviously missing the dllmap entries and the embedded mono runtime
> is not able to resolve gdiplus.dll to libgdiplus.dylib (or in fact
> libgdiplus.0.0.0.dylib in this case) to load it from my MacOS directory.
>
>
>
> I have tried creating both an App.config and Machine.config file and
> embedding using the mkbundle task, but Mono still seems unable to either
> load the config files, or use the dllmap entries:
>
> <configuration>
>
>   <dllmap dll="gdiplus.dll" target="libgdiplus.0.0.0.dylib"/>
>
>   <dllmap dll="gdiplus" target="libgdiplus.0.0.0.dylib"/>
>
> </configuration>
>
>
>
> Any help would be very much appreciated!
>
>
>
> Laurent, I noticed your reply to this list on August 11th (subject: .config
> file) in which you mention a possible Mono runtime bug when config files are
> embedded with mkbundle.  Is there any update with this?
>
>
>
> Also, is there any way to programatically set dllmap information, since in
> my code before I use System.Drawing?
>
> I would love to say something like MonoRuntime.DllMaps.Add("gdiplus.dll",
> "libgdiplus.0.0.0.dylib");
>
>
>
> Many thanks,
>
>
>
> Anthony
>
>
>
>
>
>

Reply via email to