Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

What is a Virtual Package?

Modified on July 26, 2024view on GitHub

A virtual package is just like a regular package, but without the actual contents (i.e., your application files and components). It can contain the same metadata as a regular package, but the content itself is outside the package file.

In most cases, you won't even know you're using a virtual package. They appear as regular packages in a feed (unless you look closely at a metadata parameter), and they're downloaded/installed like a regular package, including any content referenced from outside.

There are two main use cases for virtual packages:

Usecase: Bundling Multiple Packages

There are several cases where you may want to bundle a number of packages into a single, logical package.

This can be easily solved with a virtual package that "bundles" a specific version of the base application (CrmAppBase) and the client customization (InitechApp) into a single, logical package (Initech.Crm).

When you deliver the package, it will be exactly what is needed. However, you can easily see from the metadata which versions/components were used to assemble the package.

Usecase: Logical Packaging of External Files

Another way to use Virtual Packages is to reference known external files.

You can also bundle these files together with your regular package contents by bundling them.