Part 3 of a series; see Part Two here
Continued from Part Two
The actual problem, and its solution
After spending way too much time on a wild goose chase, it finally occurred to me to do what I should have done in the first place: hit the Mono website harder for a solution. I looked through the output of the failed attempts to build the Windows Forms and Gtk# versions of the samples on that first page. I found a stack trace, and followed through the chain of exceptions to the final one–actually, the first one to occur, as they are listed from outer (last) exception to inner (first)–likely the root cause. There was a message that contained the text "libgdiplus.dylib". This looked promising, as it had the sound of a system library that was perhaps missing or corrupted. So I started poring over the website, looking for the above text, or anything related to problems getting started with Mono on OS X.
After getting nowhere with the FAQ, I started poking around in the Mono forums. I had to wade through nearly a hundred entries with no success, before I found someone with a similar error message, including the stacktrace error with "libgdiplus.dylib" mentioned. And what was the suggested solution? "Install X11." X11 is the XWindows subsystem, Unix’s original GUI/Windowing system. I had previously noted that X11 was a pre-requisite, but I had scanned quickly through the hard drive of the Mac, and was pretty sure I had seen some X11 folders somewhere…Yep. I made a classic mistake. I assumed I already had a pre-requisite, and didn’t check. The next step was obvious…
Installing X11 on OS X
A quick Google turned up the following page: How to Install X11 in OS X. Oh, good! It’s already on the OS X discs! I don’t have to wade through another Open-Source "installation"! Grab the disc, follow the instructions…yep, X11 is not selected! OK, go ahead and install…open up a Terminal window…re-run the Windows Forms build commands, and run the .exe…BAM!! It works! Try the Gtk# build/run…it works too! NOW I can open the bubbly!! Success!
The moral of the story is obvious: when you find that the very first steps of a newly-downloaded development tool or package just flat-out aren’t working, stop, take a deep breath…and check the documentation, the FAQ, Google it…because, if you stop to think about it, it doesn’t make sense that you’d hit a show-stopper that early in the process. I let my previous experiences with less-than-polished open source software color my thought process, and I paid for it with several hours of wasted time.