A common question from customers migrating to Windows 7 is will application virtualization solutions such as ThinApp / App-V magically solve all Windows XP to Windows 7 migration problems. In this case I’m talking about Desktop applications, not web applications.
Sorry to break it to you but the answer is no.
ThinApp and App-V, two of the most popular application virtualization solutions, work by separating registry & file access of the application from the host system. However both virtualization solutions still interact with the host operating system, and as a result may be subject to application compatibility issues with the host OS.
The chart below demonstrates in a very simplistic way how OS level compatibility issues can still make it into the package. While file & registry reads (and in some cases writes) are Virtualized, they are only virtualized when they are in the package created. (Typically this is: these files/registry keys were added during installation capture) Because it does not completely remove interaction with the host OS, there is still a reliance on the app being compatible with the host OS.
So for example let’s say we take an application compiled against Microsoft Foundation Class Library 4.0 (MFC40.DLL) If this DLL is not installed during the capture process the captured app may still fail to run on Windows 7. Yes you can fix it in a virtual package by adding it into the package. But placing the .DLL in same directory of the .EXE would probably have fixed it in a thick install.
Will it make migration easier?
Yes, probably. Typically apps virtualized take less time to package, and require less conflict testing as they run isolated. I say typically because typically you just capture, install and bob’s your uncle. However if that doesn’t work…it can get complex…As mentioned many times on VMWare’s site “Know Thy App” is critical for successful app virtualization.
Will application virtualization automatically fix some issues?
Yes, primarily installation issues, there is no need to troubleshoot an installation when capturing an install on a previous OS. For example if an MSI has an explicit OS version check, you may need remove this check for an MSI to work on Windows 7. However using ThinApp or App-V if you capture the app on XP you won’t have to worry about fixing this.
But ThinApp Can Run IE6, Why Can’t it Run Anything?
It is possible to make IE6 run on Windows 7. The issue with running IE6 on Windows 7 is not that it is not compatible, but there are a lot of conflicts between IE6 & IE8. By virtualizing the application you reduce the risk of such conflicts. In addition in the case of ThinApp you can force certain sites to only load in IE6 so you don’t have the constant security threat of IE6 browsing in your environment.
Will App Virtualization fix ANY compatibility issue?
No. As much as I hate to say it (I hate the sight of XP) options like MED-V will offer the highest chance of fixing compatibility issues.
To quote from VMWare ThinApp’s official blog (emphasis added)
Just to clarify.. ThinApp will not magically make an application run on Windows 7 if it is not supported on Windows 7. That said, we do offer some help with ThinApp. Great examples are Internet Explorer 6, Adobe Reader 5 and Lotus Notes 6.5.6. All not running natively on Win7 but does so with the help of ThinApp. It may be tricky to find the solution and there are no guaranties. The work around is often to include older Windows XP dlls into the package and that might make the application run on Win7.
We blogged about this back in 2009 but with all the Windows 7 migrations going on it is time to emphasize the importance of the blog post.
The method discussed here: http://blogs.vmware.com/thinapp/2009/03/common-system32-dlls.html will help you to run many Windows XP legacy applications on Windows 7 even though they do not run natively installed on Win7. Adding MSVCP50.dll to a project helped me out just the other day.
Make sure you are using ThinApp version 4.5 or later. We added support for Windows 7 in version 4.5 so using an older version will not work.
And on App-V from the TechNet site (emphasis added)
Is Microsoft App-V an Application-Compatibility Solution?
Microsoft App-V is, first and foremost, an application management and deployment solution that can convey significant benefit to the enterprise—reducing packaging costs, increasing system stability, and supporting today’s highly mobile workforce with dynamic access to software assets. But as part of the marketing messaging, the overloaded term application compatibility grew to be misinterpreted over time: that App-V could help with compatibility problems between the application and the OS. For the most part, it can’t.
The best news: most applications are compatible with Windows 7. (unless you haven’t upgraded apps in 10 years)
But when they don’t what are some app compat solutions?
Ok some of the techniques I’ve used
- Use free analysis tools such as Application Compatibility Toolkit (ACT) to identify high risk apps and in some cases known fixes. Also contains IE8 compatibility assessment tool – great for developers to find issues in their IE6 only websites. (http://www.microsoft.com/downloads/en/details.aspx?FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en)
- If you have existing terminal services / citrix running a legacy OS like Server 2003 (is that legacy yet? for me it is) you might be able to use that. But then you still have to keep old OS in the environment. And really why would you NOT want to be using Server 2008 R2 Server Manager & full integration with PowerShell management…
- Haven’t used them but tools below may help in automated fixes
- APP-DNA (http://www.app-dna.com/)
- AdminStudio (http://www.flexerasoftware.com/products/adminstudio-application-compatibility-pack.htm)
- ChangeBase AOK (http://www.changebase.com/)
- None of these are “silver bullets” and will fix every issue. And they are subject to “false positives” i.e. saying an app will not work, but for all intensive purposes it just does.
- For IE6 compat in IE8 or IE9 Browsium provides a great end user experience 9(best thing: No IE6 user interface) http://www.browsium.com/
- Standard User Analyser from ACT can also automatically fix many issues related to apps designed for admin users to work under UAC
- ProcMon to identify issues, fix with SHIMs (again using ACT)
- Throwing the computer out the window
- Melting hard disks in 2,000 degree Celsius furnace (actually I didn’t try this, but would like to)
- Reading Dilbert Cartoons to maintain sanity
- Yes MED-V would probably work, but I hate XP and hope I never have to use it. But I probably will someday. Sigh.
- Migrate to Linux to eliminate the headache of all your existing application portfolio and spend the rest of your life re-compiling drivers each time a kernel upgrade occurs.
And if any of this doesn’t make sense, I apologize, I probably should have had less coffee and more sleep.
If you have better ideas please let me know