Tag Archives: virtualization

Looking for Recommendations on Windows Application Virtualization Software

I’m looking for recommendations on Windows Application Virtualization software. I’ve looked for options over the years but have never found the perfect (or even good enough) solution for my needs.

Windows Application Virtualization software means a lot of different things to different people, so lets start by establishing exactly what I’m looking for…

Runs Locally

The virtualized application should run on the local computer without the need for a separate server.

From my perspective this excludes Microsoft’s App-V, Cameyo, and Turbo which all seem to require a separate server.

Isolates at the Application Level

In other words I’m not looking for a full OS virtualization solution, it is only an individual application that needs to be virtualized.

This rules out Microsoft’s Hyper-V, Oracle’s VirtualBox, Docker, etc.

Persists the Data and Allows Interaction with the Host File System

Windows Sandbox, while not virtualizing at the application level this is an attractive option due to how light the VM is. I could almost me swung to use it with multiple applications BUT it doesn’t persist applications (which is great for its intended use case) nor does it provide access to the local file system.

In my case I’m not working with untrusted applications. Its trusted applications that I simply don’t want become enmeshed with the OS, hopefully delaying the inevitable need to perform a clean install on the base OS (and potentially expediting the setup process once the OS is installed).

Simple

Ideally the packaging process should be fairly simple. A UI is nice but not necessary. Avoiding having to setup a separate virtual machine for packaging purposes is ideal.

Affordable

I’m not looking to use this in an enterprise environment but on my own systems (though these are used for professional purposes). Something with a high price tag won’t do.

What Am I Trying to Accomplish?

When the average Windows application installs itself it inserts files and other modifications into numerous locations – this can include Program Files and Program Files (x86) as well as ProgramData and Users\username as well as (seemingly) randomly choosing Users\username\AppData\Local or LocalLow or Roaming.

Don’t forget the numerous records in Windows Registry and potentially the installation of various dependencies (e.g. redistributables).

Something akin to the virtualization Microsoft’s MSIX performs but without needing the software vendor to provide an MSIX package.

Can You Run Oracle’s VirtualBox on a Windows System with Microsoft’s Hyper-V enabled?

Every year or two I try running VirtualBox on a system with Hyper-V enabled and it goes poorly. Recently there was some hope that VB would run alongside Hyper-V…and I actually had this working for a split second. But when I updated to the latest Windows build it broke again.

Figured I’d share what I’ve learned here. Right now the information seems to be scattered around the web and it can take a while to follow the threads and figure out what the current status really is.

If you aren’t familiar with why VirtualBox (and other hypervisors) can’t run on a system with Hyper-V enabled check out this SuperUser Q&A.

The confusion is largely driven by VirtualBox’s own documentation which states: “Oracle VM VirtualBox can be used on a Windows host where Hyper-V is running.”

This did work on Windows 10 1809 but then was broken by Windows 10 1903 (the next release). For more details see this post over on the VirtualBox forums.

Currently there are only two ways to run VB and Hyper-V on the same machine – and they aren’t running simultaneously. One is to add/remove Hyper-V every time one wants to use VirtualBox and the other is to edit one’s boot records using BCDEdit, which requires a restart every time you make the switch. There is a free utility available that automates this process, but it still involves a reboot (I haven’t tried the utility yet).

If you are wondering why one would even want to run the two simultaneously there are at least two good reasons I know of: (1) WSL 2 requires Hyper-V and (2) Docker’s future on Windows involves utilizing WSL 2 and thus Hyper-V.

Note: I personally don’t use VMWare these days (have in the past) so this article focuses on VirtualBox and Hyper-V’s interactions but the problem holds true for VMWare as well.

If anyone hears of any new developments regarding this topic, I’d love to hear about them!