Ошибка при извлечении из ресурсов C#
Есть код на C# который записывает ресурсы, а затем извлекает их:
string resxFile = @".\PhotoResources.resx";
FileStream byteStream = new FileStream("AppIcon.jpg", FileMode.Open);
Byte[] bytes = new Byte[(int)byteStream.Length];
byteStream.Read(bytes, 0, (int)byteStream.Length);
using (ResourceWriter rw = new ResourceWriter(resxFile))
{
rw.AddResource("AppIcon", byteStream);
}
using (ResXResourceSet resSet = new ResXResourceSet(resxFile))
{
object obj = resSet.GetObject("AppIcon.jpg");
byte[] file = ObjectToByteArray(obj);
File.WriteAllBytes(@"NewAppIcon.jpg", file);
}
public static byte[] ObjectToByteArray(Object obj)
{
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
Ошибка возникает в этой строке:
using (ResXResourceSet resSet = new ResXResourceSet(resxFile))
Текст ошибки:
System.ArgumentException: "Разбор файла ResX Недопустимый знак для указанной кодировки., строка 1, позиция 1. невозможен."
Путь, в котором находится проект и следовательно сам исполняемый файл без русских символов и пробелов, собственно из-за чего может быть ошибка? Код собран из разных примеров из документации Microsoft.