about_MergeScriptConfig
SHORT DESCRIPTION
About config hashtables for Merge-Script
LONG DESCRIPTION
This about file contains information about using hashtables and PSD1 files to configure Merge-Script.
Config File Schema
@{
Root = "" # The root script. This is required.
OutputPath = "" # The output path for Merge-Script. This is required.
Bundle = @{
Enabled = $true # Whether bundling is enabled
Modules = $true # Whether to bundle imported modules
NestedModules = $true #Whether to bundle modules required by other modules
RequiredAssemblies = $true # Whether to bundle required assemblies
IgnoredModules = @() # Modules to ignore when bundling scripts
}
Package = @{
Enabled = $true # Whether to package as an executable
Obfuscate = $true # Whether to obfuscate the executable
HideConsoleWindow = $true # Whether to hide the console window after starting the script
DotNetVersion = "v4.6.1" # The .NET Framework version to target. The developer pack for that version must be installed on the machine for this to target a particular version.
}
}
Using a config file
A config file can be used either from within a PowerShell script as a hashtable or imported from a PSD1
file containing the hashtable.
EXAMPLES
It is not required to include all aspects of the config when using Merge-Script. The only required
components are Root and OutputPath. Aside from that, anything that is not include will be considered
false. This means that in the below example, packaging is disabled but bundling is not. The below operation
will not bundle nested modules or required assemblies of any modules it is bundling.
Merge-Script -Config @{
Root = ".\MyScript.ps1"
OutputPath = ".\"
Bundle = @{
Enabled = $true
Modules = $true
}
}