Jumble configuration file syntax
// config.json example
// file paths are relative to the location of the configuration file
{
// Sets which .NET framework should be used to resolve system dependencies
// The framework identifiers are the same as in https://fsprojects.github.io/Paket/dependencies-file.html#Framework-restrictions
"Framework": "netcoreapp2.1",
// Input DLLs. Dependencies will be searched for in input dll directories and SearchPaths section below
"Input": [
{
"File": "Test.dll",
// Obfuscation level - supported modes are:
// - 'untouchable', 'default' or not specified: do not modify anything
// - 'onlyNecessary' or 'testLib': no types will be renamed; type members will only be renamed if necessary. Use this for test libraries, etc.
// - 'privateOnly': only private types and members will be renamed
// - 'privateAndPublic': both private and public members will be renamed
"ObfuscationLevel": "onlyNecessary",
// Path to assembly signing key (optional)
"SigningKey": "key.snk"
},
// ...
],
// Output directory
"Output": "../out",
// Log directory
"LogDir": "../log",
// Types and members to be excluded from renaming. The syntax is still in development.
"Exclude": ["Rebex.Foo.Bar"],
// Method and type name generator (optional). Supported values (with few exceptions) are:
// - 'default' or not specified: random name generator
// - 'id': keep as is
// - 'test': _JUMBLE suffix will be appended to all renamed type and member names
// - 'order': (only applicable for parameters) - parameters will be named by their order of appearance (p0, p1, p2...)
"MethodNameGenerator": "test",
"GenericParameterNameGenerator": "order",
"ParameterNameGenerator": "order",
"TypeNameGenerator": "test",
// Additional reference search paths (optional)
"SearchPaths": ["../references"],
// Additional options (optional)
"AdditionalOptions": {
// Disables whitelisting of enums on which ToString() is called
"DisableEnumToStringFiltering": true
}
}
The configuration file can be generated using Rebex.Jumble.Lib
package:
open Jumble
let jumbleConfig = {
ConfigurationModel.defaultConfig with
Framework = "netcoreapp3.1"
Input = [...]
...
}
ConfigurationModel.save "jumble-config.json" jumbleConfig