You need to Stream in the resource from Disk, since the .NET Framework likely won't load your resources until you access them (I'm not 100% sure, but I'm fairly confident)
While you stream the contents in, you need to write them back as well to disk.
Remember, this will create the filename as "YourConsoleBuildName.ResourceName.Extenstion"
For example, if your project target is called "ConsoleApplication1", and your resource name is "My2MBLarge.Dll", then your file will be created as "ConsoleApplication1.My2MBLarge.Dll" -- Of course, you can modify it as you see fill fit.
private static void WriteResources()
{
Assembly assembly = Assembly.GetExecutingAssembly();
String[] resources = assembly.GetManifestResourceNames();
foreach (String name in resources)
{
if (!File.Exists(name))
{
using (Stream input = assembly.GetManifestResourceStream(name))
{
using (FileStream output = new FileStream(Path.Combine(Path.GetTempPath(), name), FileMode.Create))
{
const int size = 4096;
byte[] bytes = new byte[size];
int numBytes;
while ((numBytes = input.Read(bytes, 0, size)) > 0)
output.Write(bytes, 0, numBytes);
}
}
}
}
}