---
title: Create code packages
slug: dxp/cms12-docs/create-code-packages
docTags: 
createdAt: 2026-06-01T17:39:49.147Z
---

## Code package naming convention

The first step to use the API is to bundle your web application into a code package. Use the following conventions when you name a code package (a package containing Web App binaries, configuration and so on).

`<app name>.<package type>.app.<version>.nupkg`

- `app name`  – Optional.
- `package type` – Values are:
  - `cms` (primary Web App)
  - `commerce` (commerce manager)
- `version` – You can specify in different ways such as using a "date format" or a version number.

**Examples**

- `cms.app.1.0.0.nupkg`
- `customer.cms.app.1.0.0.nupkg` ("customer" being the "app name")
- `commerce.app.20190311103000.nupkg` (version defined in a date/time format)

## Code package content

The package should contain the Web App-related files, which normally exists at the path `D:\\Home\Site on the actual Azure Web App`.

Only folders and files related to the code are allowed (that is, `wwwroot`, `applicationHost.xdt`), and a

:::Iframe{code="<Anchor title=&#x22;Microsoft .nuspec File Reference&#x22; href=&#x22;https://docs.microsoft.com/en-us/nuget/reference/nuspec&#x22;>"}

:::

metadata file (optional) that should follow the package name.

**Sample folder structure**

```javascript
myapp.cms.app.1.0.0.nupkg
  wwwroot
    App_Data
      jobs
        continuous
          WebJob
            Run.cmd
            ...
            ...
            ...
    Web.config
    Web.Integration.config
    Web.Preproduction.config
    Web.Production.config
  applicationHost.xdt (optional)
  applicationHost.Preproduction.xdt (optional)
  applicationHost.Production.xdt (optional)
  myapp.cms.app.nuspec (optional)
```

Transforms in any target environment need to be a part of the initial code package.

You can download an Optimizely Content Management System (CMS) sample site (Alloy) package example here: [alloy.cms.app.1.2.1.nupkg](https://world.optimizely.com/globalassets/digital-experience-cloud/alloy.cms.app.1.2.1.nupkg)

## Create a code package

You can create a package by deploying to a folder and zipping this folder.

**Example:**

```text
msbuild /p:
Configuration=Release;
DeployOnBuild=True;
DeployDefaultTarget=WebPublish;
WebPublishMethod=FileSystem;
PublishProvider=FileSystem;
LastUsedBuildConfiguration=Release;
ExcludeApp_Data=False;
publishUrl=..\SitePackageContent\wwwroot;DeleteExistingFiles=False
```

You can zip this folder (`SitePackageContent` in the example) as `cms.app.1.0.0.nupkg`  to make it a deployment package that you can use in DXP.
