För att automatisera utrullning kan man använda sig av det fina biblioteket AdxStudio ALM Toolkit.
Här kommer ett exempel på ett PowerShell-script som man kan använda för att rulla ut sina lösningar:
param (
[string]
$environment
)
function Get-ScriptDirectory
{
if ($script:MyInvocation.MyCommand.Path) { Split-Path $script:MyInvocation.MyCommand.Path } else { $pwd }
}
$scriptPath = Get-ScriptDirectory
& $scriptPath\ImportAlmModule.ps1
$crmenvs = @(
[PSCustomObject]@{ Environment = "TEST"; Url = "https://crmhostname.tst/CRMORGANIZATION" },
[PSCustomObject]@{ Environment = "UAT"; Url = "https://crmhostname.uat/CRMORGANIZATION" },
[PSCustomObject]@{ Environment = "PROD"; Url = "https://crmhostname.prd/CRMORGANIZATION" }
)
if (-not $environment)
{
$crmenvs | Format-Table
Write-Host "Usage: " $script:MyInvocation.MyCommand.Name "-environment Environment"
}
else
{
$ImportSolutions = @(
"$scriptPath\Customizations\clickdimensions.zip",
"$scriptPath\Customizations\Solution_$Env:BUILD_BUILDNUMBER.zip",
"$scriptPath\Customizations\SolutionSilverlight_$Env:BUILD_BUILDNUMBER.zip",
"$scriptPath\Customizations\SolutionPlugins_$Env:BUILD_BUILDNUMBER.zip"
)
$crmenv = $crmenvs.Where{ $_.Environment -like $environment}
Try
{
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList "username", (ConvertTo-SecureString -String “password” -AsPlainText -Force)
$srcconn = Get-CrmConnection -Url "https://crmhostname.utv/CRMORGANIZATION" -Credential $credential
$dstconn = Get-CrmConnection -Url $crmenv.Url -Credential $credential
Write-Host "Exporting solution:"
$res = Export-CrmSolution -Connection $srcconn -SolutionName "Solution" -OutputPath "$scriptPath\Customizations\Solution_$Env:BUILD_BUILDNUMBER.zip" -Managed -TargetVersion "6.1.0.0" -Verbose
$res = Export-CrmSolution -Connection $srcconn -SolutionName "SolutionSilverlight" -OutputPath "$scriptPath\Customizations\SolutionSilverlight_$Env:BUILD_BUILDNUMBER.zip" -Managed -TargetVersion "6.1.0.0" -Verbose
$res = Export-CrmSolution -Connection $srcconn -SolutionName "SolutionPlugins" -OutputPath "$scriptPath\Customizations\SolutionPlugins_$Env:BUILD_BUILDNUMBER.zip" -Managed -TargetVersion "6.1.0.0" -Verbose
Write-Host "Importing solution:"
Import-CrmSolution -Connection $dstconn -CustomizationPath $ImportSolutions -OverwriteUnmanagedCustomizations -PublishWorkflows -Verbose
}
Catch
{
$errmsg = "Error: " + $_.Exception.Message # $_.Exception.ItemName " Message: "
Write-Error -Message $errmsg
Break
}
}








