title: How to access a binary resource in a C# application
body: <p>I'm trying to store an empty Access database (.mdb) as a resource in my application.  I then want to write it out the file system and populate it with table definitions, etc.  The problem I'm having in Visual Studio 2005 and my C# application is with not being able to access the resource stored in the same assembly (which I would have thought would be accessible by default).  Here's my code:</p>
  
  <pre><code>byte[] abytResource;
  System.Reflection.Assembly objAssembly = System.Reflection.Assembly.GetExecutingAssembly();
  objStream = objAssembly.GetManifestResourceStream("empty.mdb");
  abytResource = new Byte[objStream.Length];
  objStream.Read(abytResource, 0, (int)objStream.Length);
  objFileStream = new FileStream(newDatabasePathWithName, FileMode.Create);
  objFileStream.Write(abytResource, 0, (int)objStream.Length);
  objFileStream.Close();
  </code></pre>
  
  <p>GetManifestResourceStream returns NULL and according to the documentation that's because the resource must be private (because even if it doesn't exist a non-NULL value is returned).  So my question is this:</p>
  
  <p>How do i make my resource accessible to my own application?  I already added it to the project and marked it as "Embedded Resource", by the way.</p>
  
  <p>Thanks!</p>