H.Resources.Generator

Generates static class with all Embedded resources with specified types. Suitable for situations where you want to have a multi-target solution containing both .Net Framework and .Net Core/.Net 5


Keywords
generator, resources, source, dotnet, net5, netcore, netframework, resourcer
License
MIT
Install
Install-Package H.Resources.Generator -Version 1.6.0

Documentation

H.Resources.Generator

Language License Requirements Build Status

Nuget

NuGet

Install-Package H.Resources.Generator

Usage

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();

Advanced Usage

<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>

Alternatives

Contacts