1. A method of virtualizing an application, the method comprising: installing an instance of the application on each of a plurality of computing devices to create a plurality of installed instances each executing on a different corresponding one of a plurality of operating systems; creating a plurality of input configuration files using the installed instances, each input configuration file corresponding to a different one of the plurality of operating systems, each input configuration file comprising a collection of configurations made to a selected one of the plurality of computing devices by installation of the application on the selected computing device; combining, by a computing system, the plurality of input configuration files into an application template, the combining comprising: (a) identifying a particular configuration included in more than one of the collections of configurations of the plurality of input configuration files, (b) defining a layer in the application template, the layer comprising an indication that the layer applies to the ones of the plurality of input configuration files having the particular configuration in their collections of configurations, and (c) inserting the particular configuration in the layer; and providing, by the computing system, the application template to a virtual application executable constructor configured to use the application template to build a virtualized application executable configured to execute on the plurality of operating systems without installation, the particular configuration being used to configure a virtualized application during initialization of the virtualized application executable on a particular one of the plurality of operating systems when the indication indicates the layer applies to the particular operating systems.