I recently had an unusual amount of difficulty just loading an embedded resource in a MonoDevelop C# project. I couldn't find a great deal of useful information through googling, and in the end found out how to do it by looking through the GTK# source code of all things. So for anyone else wondering, here's how I achieved it:

Select the file in the solution view

In the properties panel, set "Build action" to "Embed as resource"

Set "Resource ID" to a unique name, one is automatically generated for you but you can change it if you wish

Then when you want get a stream to the resource, you can do so like this:

System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream( "mytextfile" );


This will return an open stream to the resource. Handily you could code a .dll which accesses embedded resources in a calling assembly, by simply changing GetExecutingAssembly() to GetCallingAssembly().

Hope this is of use to someone =)