Я сохраняю PNG как встроенный ресурс в сборке. Из той же сборки у меня есть такой код:
Bitmap image = new Bitmap(typeof(MyClass), "Resources.file.png");
Файл с именем «file.png» хранится в папке «Ресурсы» (в Visual Studio) и помечен как встроенный ресурс.
Код не работает с исключением, говорящим:
Ресурс MyNamespace.Resources.file.png не может быть найден в классе MyNamespace.MyClass
У меня идентичный код (в другой сборке, загрузка другого ресурса), который работает. Так что я знаю, что техника правильная. Моя проблема в том, что я трачу много времени, пытаясь выяснить, каков правильный путь. Если бы я мог просто запросить (например, в отладчике) сборку, чтобы найти правильный путь, это избавило бы меня от множества головных болей.
Я ловлю себя на том, что каждый раз забываю, как это делать, поэтому просто оборачиваю два однострочника, которые мне нужны, в небольшой класс:
источник
Я предполагаю, что ваш класс находится в другом пространстве имен. Канонический способ решить эту проблему - использовать класс ресурсов и строго типизированный ресурс:
Используйте диспетчер ресурсов IDE для добавления ресурсов.
источник
Я использую следующий метод для получения встроенных ресурсов:
Затем я называю это путем в проекте:
источник
Имя ресурса - это пространство имен плюс пространство имен «псевдо» пути к файлу. «Псевдо» пространство имен создается структурой подпапок с использованием \ (обратной косой черты) вместо. (точки).
Следующий звонок:
вернет поток my.xml, расположенный в папке resources \ xml в пространстве имен: my.namespace.
источник