Powershell Settingsfile

In a Powershell (.ps) script, you can use settings from a settings file. In this case we have a Powershell script Functions_Build.ps1 which uses a settings file Settings_BuildEnvironment.csv. You can use the following code in your PowerShell script:

Set-ExecutionPolicy Unrestricted
# Import general helpers using dot operator
. .\Functions_General.ps1

# Load parameters
$settings = Import-Csv Settings_BuildEnvironment.csv
foreach($setting in $settings)
{
# The directory where the BizTalk projects are stored
if($setting.’Name;Value’.Split(“;”)[0].Trim() -eq “projectsBaseDirectory”) { $projectsBaseDirectory = $setting.’Name;Value’.Split(“;”)[1].Trim() }

# The directory where the MSI’s should be saved to
if($setting.’Name;Value’.Split(“;”)[0].Trim() -eq “installersOutputDirectory”) { $installersOutputDirectory = $setting.’Name;Value’.Split(“;”)[1].Trim() }

# Directory where Visual Studio resides
if($setting.’Name;Value’.Split(“;”)[0].Trim() -eq “visualStudioDirectory”) { $visualStudioDirectory = $setting.’Name;Value’.Split(“;”)[1].Trim() }
}

The settinsfile looks like this:
Name;Value
projectsBaseDirectory;..\..\..\..\..\..\Trunk\ESB
installersOutputDirectory;..\..\..\..\..\..\Trunk\ESB\Deployments
visualStudioDirectory;C:\Program Files (x86)\Microsoft Visual Studio 14.0

To use Functions.Build.ps from my main build script Kw1c_Build.ps1, use the following code. Note that we call a function BuildAndCreateBizTalkInstallers in Functions_Build.ps1.

Set-ExecutionPolicy Unrestricted
# Project specific settings
$projectName = “Source”
$applications = @(“Kw1c.BizTalk.Skb.Groep”)

# Import custom functions
. .\Functions_Build.ps1

# Build the applications
BuildAndCreateBizTalkInstallers $applications $projectName

# Wait for user to exit
WaitForKeyPress