I have created a config file for the merge script
config.ps1
@{
Root = 'C:\test.ps1' # Root script to package. This is the main entry point for the package.
OutputPath = 'C:\bundle' # The output directory for the packaging process.
Package = @{
Enabled = $true # Whether to package as an executable.
Obfuscate = $false # Whether to obfuscate the resulting executable.
HideConsoleWindow = $false # Whether to hide the console window. Only valid for console applications.
DotNetVersion = 'v4.6.2' # The target .NET Framework version. You will need the .NET Developer Pack for this version installed on your machine.
FileVersion = '1.0.0' # The output file version
FileDescription = '' # The output file description
ProductName = '' # The output file product name
ProductVersion = '' # The output file product version.
Copyright = '' # The output file copyright
RequireElevation = $false # Whether to require elevation when running the executable. Only valid for console applications.
ApplicationIconPath = '' # The path to the application icon to use for the executable.
PackageType = 'Console' # The type of executable to generate. Valid values are Service or Console.
PowerShellCore = $false # Whether to bundle the PowerShell Core runtime within your executable.
HighDPISupport = $false # Whether to enable high DPI support for WinForm applications
PowerShellArguments = '' # Sets the arguments for the PowerShell process that is hosted within the executable. You can use arguments like -NoExit, -ExecutionPolicy and -NoProfile.
}
Bundle = @{
Enabled = $true # Whether to bundle multiple PS1s into a single PS1. Always enabled when Package is enabled.
Modules = $true # Whether to bundle modules into the package
}
}
The test file is simple
`test1.ps1’
. testFunctions.ps1
Get-ComplexPassword -MinimumPasswordLength 10
testFunctions.ps1
function Get-ComplexPassword
{
Param
(
[Parameter(Mandatory = $True)][Int32]$MinimumPasswordLength
)
write-host $MinimumPasswordLength
}
I run the command merge-script -configfile .\config.ps1
It completes
However, when I run the command from powershell .\test.exe
. : The term 'testFunctions.ps1' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:2 char:3
+ . testFunctions.ps1
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (testFunctions.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Get-ComplexPassword : The term 'Get-ComplexPassword' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and
try again.
At line:3 char:1
+ Get-ComplexPassword -MinimumPasswordLength 10
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-ComplexPassword:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
What is needed to make this basic functionality work properly