Как получить двоичный файл из сборки .NET? - PullRequest
3 голосов
/ 03 апреля 2010

У меня есть файл Excel, который я хочу встроить в мою сборку C #. Я изменил действие по сборке файла XLSX на «Встроенный ресурс».

Во время выполнения я должен извлечь этот файл XLSX из сборки.

Assembly assembly = Assembly.GetExecutingAssembly();
StreamReader sr = new StreamReader(assembly.GetManifestResourceStream("AssemblyName.Output.xlsx"), true);
StreamWriter sw = new StreamWriter(strPath);
sw.Write(sr.ReadToEnd());
sr.Dispose();
sw.Dispose();
System.Diagnostics.Process.Start(strPath);

Как и ожидалось, это не удается для файла XLSX, поскольку это двоичные данные. Это может хорошо работать с текстовым файлом.

Я пробовал двоичное чтение / запись, но я не могу запустить код. Мысли?

1 Ответ

10 голосов
/ 03 апреля 2010
var assembly = Assembly.GetExecutingAssembly();

// don't forget to do appropriate exception handling arund opening and writing file
using(Stream input = assembly.GetManifestResourceStream("AssemblyName.Output.xlsx"))
using(Stream output = File.Open("output.xlsx"))
{
     input.CopyTo(output);
}
...