Install-Package H.Resources.Generator
Just install this package and add any resources to Resources subfolder. After you can use resources in the code:
var bytes = H.Resources.name_png.AsBytes();
// or
var text = H.Resources.name_txt.AsText();
<PropertyGroup>
<HResourcesGenerator_WithSystemDrawing>true</HResourcesGenerator_WithSystemDrawing>
</PropertyGroup>
<ItemGroup Label="Images">
<EmbeddedResource Include="Images\*.png" />
<AdditionalFiles Include="Images\*.png" />
</ItemGroup>
After it, use resource in code:
var image = H.Resources.image_name_png.AsImage();
// or
var bytes = H.Resources.image_name_png.AsBytes();
Available methods:
- System.Drawing.Image AsImage() (only if
HResourcesGenerator_WithSystemDrawing
is true) - System.IO.Stream AsStream()
- string AsString()
- byte[] AsBytes()
Global options(Default values are provided and can be omitted):
<PropertyGroup>
<HResourcesGenerator_Namespace>H</HResourcesGenerator_Namespace>
<HResourcesGenerator_Modifier>internal</HResourcesGenerator_Modifier>
<HResourcesGenerator_ClassName>Resources</HResourcesGenerator_ClassName>
<HResourcesGenerator_AddResourcesFolder>true</HResourcesGenerator_AddResourcesFolder>
<HResourcesGenerator_WithSystemDrawing>false</HResourcesGenerator_WithSystemDrawing>
</PropertyGroup>
By default, it includes this code:
<ItemGroup Condition="$(HResourcesGenerator_AddResourcesFolder)">
<EmbeddedResource Include="Resources\**\*.*" />
<AdditionalFiles Include="Resources\**\*.*" />
<Compile Remove="Resources\**\*.*" />
</ItemGroup>
You can disable this behavior with <HResourcesGenerator_AddResourcesFolder>false</HResourcesGenerator_AddResourcesFolder>