Getting Started
Add the embedded files to your project, for example:
<ItemGroup>
<AdditionalFiles Include="wwwroot\index.html" />
<AdditionalFiles Include="wwwroot\css\site.css" />
<AdditionalFiles Include="wwwroot\js\site.js" />
</ItemGroup>
Then in an .editorconfig file add the following property,
[wwwroot/index.html]
embed = true
[wwwroot/css/site.css]
embed = true
[wwwroot/js/site.js]
embed = true
Then finally add the Pasted source generator to your project:
<ItemGroup>
<PackageReference Include="Pasted" Version="x.x.x">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
The source generator will then generate a static class with constants for each file, which you can use in your code:
// the EmbeddedFiles static class is generated by the source generator
const string html = EmbeddedFiles.Index;
const string css = EmbeddedFiles.Css;
const string js = EmbeddedFiles.Js;
The namespace and static property name can be configured in the
.editorconfig file.
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
| embed | boolean | false | Enables embedding this file into the generated class. Files with embed = true will be included. |
| namespace | string | Pasted | Overrides the namespace used for the generated static class. |
| class_name | string | EmbeddedFiles | Overrides the name of the generated static class that contains file constants. |
| name | string | Derived from file name (sans extension) | Overrides the constant field name for the file; by default uses the file name without extension. |
| public | boolean | false | Controls visibility of generated class and its fields; true makes them public, else internal. |