Whether the resources are there, check the built assembly using Reflector to determine if they can be accessed through the first method. If not, something is amiss with your deployment; of course, you may always deploy them as loose files. If this isn't clear enough, ask for further information; I'll be at my desk the next day with the code available to do so (had to deal with something like this a while ago).
Based on my testing, the information is retrieved through the file system via a relative path to
. If something alters that value, your relative paths will get messed up if they are supplied from the exe path. Utilizing an embedded resource is more stable due to this restriction.
The complete resource name when compiling as an embedded resource differs from when building an edmx through
If you are still having trouble getting the metadata to be accepted/found, you should extract the assembled resources to be certain of the resource name.