Вам необходимо выполнить потоковую передачу ресурса с диска, поскольку .NET Framework, скорее всего, не будет загружать ваши ресурсы, пока вы не получите к ним доступ (я не уверен на 100%, но я совершенно уверен)
Во время потоковой передачи содержимого необходимо также записать его обратно на диск.
Помните, что это создаст имя файла как "YourConsoleBuildName.ResourceName.Extenstion"
Например, если цель вашего проекта называется «ConsoleApplication1», а имя вашего ресурса - «My2MBLarge.Dll», то ваш файл будет создан как «ConsoleApplication1.My2MBLarge.Dll» - конечно, вы можете изменить его как вы видите заполнение подходит.
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);
}
}
}
}
}