7.3. Script Variables
Eazfuscator.NET provides support for script variables that can be used to configure the following features:
The list of available script variables is presented in the table below.
Table 7.1. The list of available script variables
Variable | Description | Example value |
---|---|---|
| Directory path of the input assembly |
|
| Directory path of the MSBuild project |
|
| Directory path of the MSBuild solution |
|
| Name of MSBuild project configuration |
|
Environment variables can be referenced using $(env:VARIABLE)
syntax, where VARIABLE
is the name of an environment variable to use.
Referencing a NuGet package path
Sometimes, you may need to reference a path to a NuGet package. Say, you want to embed a platform-specific assembly from that package. SDK-style projects provide a way to achieve this. First, in the project file, you must set a GeneratePathProperty
of the corresponding PackageReference
to true
. Here is an example:
<PackageReference Include="Contoso.Engine" Version="1.0.0" GeneratePathProperty="true"/>
This causes an MSBuild property PkgContoso_Engine
to hold the path of the NuGet package directory. The property's name is composed as Pkg{PackageId}
with the dots replaced by underscores.
You can reference Pkg
build properties in obfuscation directives the same way as script variables — for instance, the Contoso.Engine
path can be referenced as $(PkgContoso_Engine)
:
using System.Reflection;
[assembly: Obfuscation(Feature = "embed $(PkgContoso_Engine)\\runtimes\\win\\lib\\net6.0\\Contoso.Engine.dll", Exclude = false)]