Try using the Embedded Resource instead.
So let's say you have jpg "Foo.jpg" in ClassLibrary1. Set "Build Action" to "Embedded Resource".
Then use this code to get bytes
byte[] GetBytes() { var assembly = GetType().Assembly; using (var stream = assembly.GetManifestResourceStream("ClassLibrary1.Foo.jpg")) { var buffer = new byte[stream.Length]; stream.Read(buffer, 0, (int) stream.Length); return buffer; } }
Or alternatively if you want to use a more reusable method
byte[] GetBytes(string resourceName) { var assembly = GetType().Assembly; var fullResourceName = string.Concat(assembly.GetName().Name, ".", resourceName); using (var stream = assembly.GetManifestResourceStream(fullResourceName)) { var buffer = new byte[stream.Length]; stream.Read(buffer, 0, (int) stream.Length); return buffer; } }
and call
var bytes = GetBytes("Foo.jpg");
source share