Support for windows app
As microsoft is moving away from the msrdc and mstsc will there be support for the microsoft windows app in future releases?
I have looked at it, and as of today, the only possible way we can add support for Windows App is by copying the required files (msrdc.exe, rdclientax.dll) outside of the MSIX install path. We cannot load the files for execution, MSIX unfortunately prevents this by design: https://bsky.app/profile/awakecoding.com/post/3llf3vvykkk25
I made a post on LinkedIn which you can amplify: https://www.linkedin.com/posts/mamoreau_prepare-for-the-remote-desktop-client-for-activity-7312102739025477632-bxxi/
I would appreciate it if you could voice your concerns by commenting on the blog post announcing the MSRDC deprecation: https://techcommunity.microsoft.com/blog/windows-itpro-blog/prepare-for-the-remote-desktop-client-for-windows-end-of-support/4397724
Microsoft could make changes to facilitate consumption in MsRdpEx: https://bsky.app/profile/awakecoding.com/post/3llmixy4iac2f
Microsoft has only one goal and that’s getting everyone to there azure platform… They sometimes seem to forget there market outside of azure is still way bigger then within.
But the fact the windows app is using msrdc is good news, it seems that the msrdc will still be needed by them as well so in other words it will still get updated. The msix format is in general just a different installation format but the file location can be reached. Wouldn’t it be possible to start with adding an option to msrdcex to get the installed location from a regkey or so? At first we could set it manually to the installed location of the windows app, maybe we can think of a more automated way later on?
You mean you'd like me to add a registry key pointing to msrdc.exe, rdclientax.dll? I guess I could do this before doing the nasty work of automating the copying of the MSRDC files out of the Windows App MSIX, in a temporary location where we can run it from. Here's the part of MsRdpEx that deals with path detection: https://github.com/Devolutions/MsRdpEx/blob/master/dll/Paths.c
I'm thinking I could add registry keys under HKLM:\Software\Devolutions\MsRdpEx for this, in addition to the environment variables like MSRDPEX_RDCLIENTAX_DLL, etc.
Indeed, it will help us all to test until we find a proper way of doing this. I am also checking if it would be possible to extract the MSIX file and create your own msi for it. Also not the most proper way and more maintenance intensive but if Microsoft is not providing it we can do it our own way.
I have written a quick PowerShell script to automate the extraction of the MSRDC files from Windows App, and "install" it under %LocalAppData%\Apps\MSRDC, trying to handle multiple versions nicely:
$Appx = Get-AppxPackage -AllUsers | Where-Object {
$_.PackageFamilyName -eq "MicrosoftCorporationII.Windows365_8wekyb3d8bbwe"
} | Select-Object -First 1
if (-not $Appx) {
Write-Error "Windows365 MSRDC package not found."
return
}
$Source = Join-Path $Appx.InstallLocation "msrdc"
$exe = Join-Path $Source "msrdc.exe"
$Version = (Get-ItemProperty $exe).VersionInfo.ProductVersion
$LocalApps = Join-Path $Env:LocalAppData "Apps"
$LatestPath = Join-Path $LocalApps "MSRDC"
$VersionPath = Join-Path $LocalApps "MSRDC.$Version"
# Copy only if the versioned path doesn't exist
if (-Not (Test-Path $VersionPath)) {
Write-Output "Copying MSRDC to $VersionPath"
Copy-Item $Source $VersionPath -Recurse
}
# Check if MSRDC junction already exists and points to correct location
$shouldCreateJunction = $true
if (Test-Path $LatestPath) {
$item = Get-Item $LatestPath -Force
if ($item.Attributes -band [IO.FileAttributes]::ReparsePoint) {
$resolved = [IO.Path]::GetFullPath($item.Target)
$expected = [IO.Path]::GetFullPath($VersionPath)
if ($resolved -ieq $expected) {
Write-Output "Junction already exists and points to correct version."
$shouldCreateJunction = $false
} else {
Write-Output "Removing existing junction: $LatestPath"
Remove-Item $LatestPath -Force
}
} else {
Write-Error "$LatestPath exists and is not a junction. Please remove it manually."
return
}
}
# Create junction only if needed
if ($shouldCreateJunction) {
Write-Output "Creating junction: $LatestPath -> $VersionPath"
cmd.exe /c mklink /J `"$LatestPath`" `"$VersionPath`"
}
In Remote Desktop Manager, we can set a custom path already. I made a video with instructions: https://bsky.app/profile/awakecoding.com/post/3llp6eibspc2y
We just need a way to make this easier from MsRdpEx alone. It's just painful to have to manually copy the files and then manually point to a custom "install" path. It works, it's just ridiculous.
Did u allready have an idea how we could ajust this path from the msrdc location?
Is there any change on this issue!
@rtjdamen I've had a few calls with Microsoft - all I can say is that I couldn't get a solution to this problem. The deprecation of MSRDC with the MSI installer is going as planned, Windows App is still only MSIX-packaged, so there's not much we can do in MsRdpEx. Maybe try to bring it up with Microsoft separately, hopefully if there's enough people asking for it, this would get addressed.