FrameworkTemplate/Solutions/Scripts/_SetupTools.ps1
function Install-XrmModule { $moduleName = "Microsoft.Xrm.Data.Powershell" $moduleVersion = "2.8.14" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -Scope CurrentUser } else { Write-host "Module $moduleName version $moduleVersion or higher Found" } } function Install-DevOpsDataModule { $moduleName = "Microsoft.Xrm.DevOps.Data.Powershell" $moduleVersion = "1.4.2" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -Scope CurrentUser } else { Write-host "Module $moduleName version $moduleVersion or higher Found" } } function Install-CoreTools { $sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" $targetNugetExe = ".\nuget.exe" Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe Set-Alias nuget $targetNugetExe -Scope Global ## ##Download CoreTools ## Write-host "Nuget Sources" if (-not $(Get-PackageSource -ProviderName NuGet -ErrorAction Ignore)) { ./nuget sources Add -Name "nuget live" -Source "https://api.nuget.org/v3/index.json" } ./nuget sources ./nuget install Microsoft.CrmSdk.CoreTools -O .\Tools $coreToolsFolder = Get-ChildItem ./Tools | Where-Object { $_.Name -match 'Microsoft.CrmSdk.CoreTools.' } Move-Item .\Tools\$coreToolsFolder\content\bin\coretools\*.* .\Tools\ -Force -ErrorAction SilentlyContinue Remove-Item .\Tools\$coreToolsFolder -Force -Recurse -ErrorAction Ignore } function Install-XrmDeployModule { $moduleName = "Microsoft.Xrm.Tooling.PackageDeployment.Powershell" $moduleVersion = "3.3.0.928" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -Scope CurrentUser -SkipPublisherCheck } else { Write-host "Module $moduleName version $moduleVersion or higher Found" } } function Install-XrmToolingPowerShell { $moduleName = "Microsoft.Xrm.Tooling.CrmConnector.PowerShell" $moduleVersion = "3.3.0.928" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -AllowClobber } else { Write-host "Module $moduleName Found" Import-Module -Name $moduleName -MinimumVersion $moduleVersion -Force } } function Install-PowerAppsCheckerModule { $moduleName = "Microsoft.PowerApps.Checker.PowerShell" $moduleVersion = "1.0.29" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -AllowClobber } else { Write-host "Module $moduleName Found" Import-Module -Name $moduleName -MinimumVersion $moduleVersion -Force } } function Install-PowerAppsAdmin { $moduleName = "Microsoft.PowerApps.Administration.PowerShell" $moduleVersion = "2.0.126" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -AllowClobber } else { Write-host "Module $moduleName version $moduleVersion or higher Found" Import-Module -Name $moduleName -MinimumVersion $moduleVersion -Force } } function Install-PowerAppsPowerShell { $moduleName = "Microsoft.PowerApps.PowerShell" $moduleVersion = "1.0.20" $module = Get-Module -ListAvailable -Name $moduleName if (!($module.Version -ge $moduleVersion )) { Write-host "Module $moduleName version $moduleVersion or higher not found, installing now" Install-Module -Name $moduleName -MinimumVersion $moduleVersion -Force -AllowClobber } else { Write-host "Module $moduleName Found" Import-Module -Name $moduleName -MinimumVersion $moduleVersion -Force } } $ProgressPreference = 'SilentlyContinue' [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 if (-not $(Get-PackageProvider -Name NuGet -ErrorAction Ignore)) { Install-PackageProvider -Name NuGet -Force -Scope CurrentUser } $PSGallery = Get-PSRepository | Where-Object Name -eq "PSGallery" | Select-Object InstallationPolicy if (-not $PSGallery.InstallationPolicy -eq "Trusted") { Register-PSRepository -Default -ErrorAction SilentlyContinue Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction SilentlyContinue } |