Start a new topic

Windows on ARM support?

Any plans on releasing an ARM64-compatible build of TS for Windows?  I can get it to launch and manage my connection database, but launching an RDP session throws the following error:


Message:
Failed to create the remote desktop client: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1).

Details:
System.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.ControlCollection.Add(Control value)
at (Object , Control )
at RoyalTS.DeploymentTreePageSet.IncreaseTreeNode(Object messagePosition, Control containerLength)
at RoyalTS.FunctionDictionaryPageSet.IncreaseQueue(RoyalRDSConnection messagePosition) in File801:line 858
at RoyalTS.FunctionDictionaryPageSet.FunctionSetPageSet.JoinPartition() in File801:line 103
at RoyalDocumentLibrary.RoyalBase.TemporaryAction(Action action)
at (Object , Action )
at RoyalTS.ContextHelperPageSet.IncreaseTreeNode(Object messagePosition, Action containerLength)
at RoyalTS.FunctionDictionaryPageSet.FunctionSetPageSet.IncreaseTreeNode() in File801:line 101 

Hi!


The current ARM support from Microsoft is quite bad. Royal TS is a C# WinForms app and Microsoft doesn't fully support ARM yet. Also, Royal TS depends on many components, including the RDP component Microsoft ships with Windows which also seem to not fully work with ARM yet. As soon as Microsoft supports ARM fully on the complete stack, we will support it as well.


Sorry for not having better news right now.


Regards,
Stefan 

No worries!  I figured as much.  Windows on ARM has a looong way to go.


Thank you!


Adam

I'd be very keen to see an ARM build. If what Adam says is correct - I might have to return the Surface Pro X I have on order, as I use RoyalTS all day everyday.

FWIW, RoyalTS 6.1.50420 seems to work fine (if a bit slow) on Windows 11 on ARM64.

image

Yes it does!  Version 6 has always launched on ARM64, but has run with graphical artifacts until the recent betas.  Looks like they're dialing things in a bit.  I can't wait for a native ARM64 application.

Just a quick update regarding ARM64 support for Royal TS:

  • First of all, we got some hardware where we can run and test Royal TS running on ARM64.
  • The most recent build (6.1) runs on .NET 6 and thanks to the ARM64EC on Windows 11, it seems to run quite well. Startup performance is quite poor but once Royal TS is up and running, performance is actually impressive considering the x64 code is emulated. More information can be found here:
    https://blogs.windows.com/windowsdeveloper/2021/06/28/announcing-arm64ec-building-native-and-interoperable-apps-for-windows-11-on-arm/ 
  • ARM support for UI based .NET frameworks (WinForms/WPF) is still very bad and we're not sure yet if .NET 7 brings all the improvements we need to build a native ARM64 app. Even if MS pulls that off, there are still a lot of dependencies in Royal TS which will not be available as ARM64 component for a longer period of time.

We will, of course, keep an eye on ARM64 and we hope that .NET 7 brings us closer to a native ARM64 build.



1 person likes this
Login or Signup to post a comment