A few weeks ago, I wrote a post on why you can’t use App Streaming as a solution to deliver Windows applications to a Mac Operating System.  The foundation statement is that isolation “changes” the execution of the Windows application, but the application remains a Windows app, so the execution machine operating system has to support running the app, or running the app under isolation is literally, a non-starter.

I have received a follow-up question that discusses running Windows 16-bit applications on Windows 64-bit systems.  Before we all have the knee jerk reaction that says NO!, we need to think this through.  The Win 64 platform cannot run 16 bit apps, any 16-bit apps, ever.  So no matter how much you isolate them, they still don’t run on the 64-bit system.   Does this mean that it won’t work?  Probably.

The premise is that the application is really a 32-bit application that happens to be installed with an installation program that is a 16-bit program.

Also, before we all react and say that App Streaming doesn’t isolate 16-bit applications, in some cases it DOES isolate them, just not Windows 16-bit applications.  App Streaming can isolate 16-bit DOS Apps, so the statement that only 32-bit apps are isolated is … incomplete.

Question to me recently is that yes, I understand that the application has to be 32-bit to run isolated on Win 64, but what if the INSTALLER is 16-bit and the application is 32?  Notice that the installer can’t be run on Win 64, but the application itself actually has a chance!  A small chance, whose odds approach zero, but I’m getting ahead.


  1. Profile installation of 32 bit app using 16 bit installer on 32-bit operating system.
  2. RUN the 32-bit application on 64 bit operating system

Conceptually, it could work.  It would depend heavily on the application, and I’ll say in the normal case, it won’t work.  The problem is that the PROGRAMFILES location is different for the two environments and it is “likely”, that the application at runtime will make references to the wrong program files location and not find some things that it is looking for.  App Streaming doesn’t map these across, at least not automatically.

To take it further though, there’s no reason that an admin during profiling can’t add a “redirect” rule to the isolation target so that application references to %PROGRAMFILES% which convert into the 64-bit space, could be REDIRECTED into the %PROGRAMFILES(X86)% space.  Here, the “file” stuff would PROBABLY work.

The registry has similar issues.  When profiling on 32-bit, the registry store that the app does will be redirected into isolation space and become part of the profile.  At runtime, the 32-bit app will reference the 32-bit registry, which – head starting to hurt now – will really be in the SYSWOW64 space.  How this plays out to completion gets complex and I’m willing to make a strong wager that it won’t work.

Bottom line, this isn’t a situation that has been looked at, whether from a dev, test or customer direction.  I stood up for years and told people that DOS applications couldn’t be isolated under App Streaming and then found out that it works fine.  On this one, I’m highly suspicious, but if people could prove me wrong again, it would be a happy day.


Joe Nord

Citrix Systems Product Architect – App Streaming