Advanced Features
The ByteHide Shield desktop configurator offers several advanced features for power users who need more control over the protection process.
Package Installation Management
The desktop configurator can automatically install the ByteHide Shield integration package in your projects:
Auto-Installation
When the configurator detects a project without the Shield integration package:
- It displays a notification "Integration package not installed"
- You can click Install Package to add it to your project
- The installation happens automatically without needing to open Visual Studio
Manual Installation
If you prefer to manage packages manually:
- You can ignore the installation notification
- Install the package through Visual Studio's NuGet Package Manager
- Refresh the configurator to update its status
Global Configuration File
Unlike regular Shield configuration where each project (.csproj
) requires its own shield.config.json
file, the desktop configurator works by creating a single global configuration file at the solution level.
How It Works
- The configurator creates a file called
bytehide.shield.global.json
in the same directory as your.sln
file - This file contains configurations for all projects in your solution in one centralized place
- When building your solution, Shield will read the appropriate configuration for each project from this global file
Global Configuration Structure
The global configuration file uses the following format:
{
"globalOptions": {
"enabled": true,
"throwOnError": true,
"copyMagicKey": false
},
"projects": [
{
"Name": "Shield",
"path": "Shield/Shield.csproj",
"Preset": "custom",
"Enabled": "true",
"RunConfiguration": "Release",
"Protections": {
"invalid_metadata": null,
"anti_dump": null,
"constants_mutation": null,
"resources": null
},
"Actions": {}
},
{
"Name": "Shield.Client",
"path": "Client/Client/Shield.Client.csproj",
"Preset": "optimized",
"Enabled": "true",
"RunConfiguration": "Release",
"Protections": {},
"Actions": {}
}
]
}
The file consists of two main sections:
- globalOptions: Settings that apply to all projects in the solution
- projects: An array of project-specific configurations, each including:
- Name: The project name
- path: The relative path to the project file
- Preset, Enabled, and other settings following the same format as in Configuration Files
Advanced Manual Configuration
Some advanced options, particularly those related to signing, must be configured manually by editing the global configuration file:
- Strong Name Signing Properties: For configuring SNK files for strong name signing
- Enhanced Signing Properties: For additional signing features
The desktop configurator's UI currently does not support configuring signing options. To use these features, you must manually edit the bytehide.shield.global.json
file following the same format described in the Configuration Files documentation.
For detailed information on all available configuration options and their formats, refer to the Configuration Files documentation. All configuration properties supported in individual project files are also supported in the global configuration file's project entries.
Next Steps
Protection Settings
Return to protection options
Configuration Workflow
Return to the configuration workflow
Configuration Files
Learn about all available configuration options