Bootstrap portable Remote Desktop Manager version
function BootstrapPortableRDM {
<#
.SYNOPSIS
Bootstrap a portable installation of RDM 2025.x
.DESCRIPTION
You must provide the zipped .NET Runtime and .NET Windows Desktop Runtime. The
zip releases are not available on the Microsoft download page but can be found
in the project releases at https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/10.0/releases.json.
Additionally you must provide the zipped Remote Desktop Manager and a location to
create the portable package root.
A launch script will be generated in the packaged `RDM` directory.
.EXAMPLE
$PackageRoot=Join-Path $Env:USERPROFILE "portable"
./setup-environment.ps1 -DotNetRuntimeArchiveFilePath "dotnet-runtime-10.0.3-win-x64.zip" -DotNetDesktopRuntimeArchiveFilePath "windowsdesktop-runtime-10.0.3-win-x64.zip" -RemoteDesktopManagerArchiveFilePath "Devolutions.RemoteDesktopManager.Bin.2025.1.31.0.zip" -PackageRootDirectory $PackageRoot
& $(Join-Path $PackageRoot "RDM/launch-rdm.ps1")
#>
param(
[Parameter(Mandatory, HelpMessage="The .NET Runtime .zip archive")]
[string] $DotNetRuntimeArchiveFilePath,
[Parameter(Mandatory, HelpMessage="The .NET Windows Desktop Runtime .zip archive")]
[string] $DotNetDesktopRuntimeArchiveFilePath,
[Parameter(Mandatory, HelpMessage="The Remote Desktop Manager .zip archive")]
[string] $RemoteDesktopManagerArchiveFilePath,
[Parameter(Mandatory, HelpMessage="The root packaging folder")]
[string] $PackageRootDirectory
)
$ErrorActionPreference = "stop"
$DotNetRuntimeArchiveFilePath = Resolve-Path $DotNetRuntimeArchiveFilePath
$DotNetDesktopRuntimeArchiveFilePath= Resolve-Path $DotNetDesktopRuntimeArchiveFilePath
$RemoteDesktopManagerArchiveFilePath= Resolve-Path $RemoteDesktopManagerArchiveFilePath
New-Item -Path $PackageRootDirectory -Type Directory -Force
Push-Location $PackageRootDirectory
Expand-Archive $RemoteDesktopManagerArchiveFilePath -DestinationPath "RDM"
Expand-Archive $DotNetRuntimeArchiveFilePath -DestinationPath "dotnet"
Expand-Archive $DotNetDesktopRuntimeArchiveFilePath -DestinationPath "dotnet"
$LaunchScript = @'
$DotNetRoot = Join-Path $(Get-Item $PSScriptRoot).Parent.FullName "dotnet"
$Env:DOTNET_ROOT=$DotNetRoot
$RdmDir = Join-Path $(Get-Item $PSScriptRoot).Parent.FullName "RDM"
$Rdm = Join-Path $RdmDir "RemoteDesktopManager.exe"
& "$Rdm"
'@
$LaunchScript | Out-File $(Join-Path RDM "launch-rdm.ps1")
Pop-Location
}
BootstrapPortableRDM @argsLast updated
Was this helpful?