A novel method is disclosed for capturing an installed state of a conventional application and converting the captured state into a virtual application. The novel method starts with a
bare machine in a known state, preferably soon after the OS was installed. Installation scripts are used to install one or more
software applications along with required components and dependencies. Other artifacts can be added and configured such as files, trees, directories, entries, data, values, among others. These also may include updates to various
system databases, such as the
Windows registry in which certain
metadata is stored. The installed applications are tested and verified to work as desired. Undesired artifacts can be deleted manually or removed by the OS. The state of the
virtual machine with the installed applications is captured. The installed applications can be tested on the frozen
virtual machine. If the user determines that the installed applications are working properly, a
virtual machine image is prepared and then written out. The resulting output is a new populated virtual application container that encapsulates the applications installed and configured by the user. If the user determines that one or more installed applications do not work properly during testing, then the frozen virtual
machine can be unfrozen and any deficiencies corrected. The virtual
machine image is stored as a launch document and a set of shards. The virtual
machine image represents the state of the virtual machine along with the installed applications at the time the preparation virtual machine was frozen.