public void ExtractResource(string resourceName, string fullFileName, Assembly assembly)
{
_logger.Trace("Attempting to extract " + resourceName + "...");
string[] names = assembly.GetManifestResourceNames();
string resource = names.FirstOrDefault(x => x.Contains(resourceName));
if (resource == null)
{
throw new MissingManifestResourceException(resourceName);
}
Stream resourceStream = assembly.GetManifestResourceStream(resource);
Stream fileStream = File.OpenWrite(fullFileName);
byte[] buffer = new byte[resourceStream.Length];
resourceStream.Read(buffer, 0, buffer.Length);
fileStream.Write(buffer, 0, buffer.Length);
resourceStream.Close();
fileStream.Close();
_logger.Trace(resourceName + " extracted to " + fullFileName + ".");
}