PluginFilePacker

Visual Studio / Visual Studio Code extension that generates a WebFramework plugin file handler (FileHandler.cs) for the files in Files/.

Example of a generated file on GitHub: ServerPlugin/FileHandler.cs

Repository on GitHub (Visual Studio)

Repository on GitHub (Visual Studio Code)

Main features

  • Generating a plugin file handler for static files (using text for dynamically modified text files or using a .RESX file / base64 string otherwise (depending on the setting))
  • Calling a custom file handler if no matching file was found (see "Usage" below)
  • Automatically detecting the namespace and class name of the existing FileHandler.cs or FileHandlerCustom.cs
  • Dynamically replacing [PATH_PREFIX] with the current plugin path prefix, [PATH_HOME] with the plugin's current home/root path, [DOMAIN] with the current domain and [DOMAIN_MAIN] with the main domain for the current domain

Installation

You can find this extension on the Visual Studio marketplace as: PluginFilePacker (VS|VSC)

Alternatively, you can download the .vsix file from the releases on GitHub (VS|VS) and open it to install the extension.

Usage

To execute the command, go to: Tools > Generate FileHandler.cs (if there are multiple projects in your solution, you might need to click on the desired project to select it!)

There are some settings under Tools > Options > PluginFilePacker, those are documented in their description.

To create a custom file handler as a fallback, create a file FileHandlerCustom.cs using the same namespace and partial class, then add two methods like this:
byte[]? GetFileCustom(string relPath, string pathPrefix, string domain)
string? GetFileVersionCustom(string relPath)