Managing Assets > ThingWorx Software Content Management (Admin Only) > Packages > Create a File-based Package
  
Create a File-based Package
File-based packages are supported on the ThingWorx WebSocket-based Edge MicroServer (WS EMS) and C SDK.
* 
This section assumes that you have completed the prerequisites to create a file-based package.
Complete the following steps to create a file-based package:
1. From the left pane in ThingWorx Software Content Management, under the Packages section, navigate to PACKAGE > Create package.
The Create Package page appears.
2. In the Package Name field, enter the name of the package.
3. In the Package Description field, enter a brief description of the package.
4. In the Version field, enter a version number for the package.
The following rules apply to the version of a package:
You must enter a major package version number.
You can enter only non-negative integers.
In each box of the version field, you can enter a numeric string up to a maximum length of 4 for a package version as shown in the following image:
* 
By default, the major version number is populated with a 1 and the remaining fields are considered to have a value of 0. The following are examples of invalid values:
If you have a value for the last field in the Version field, an empty value for the preceding fields is invalid, and it is highlighted in red as shown below:
Instead of leaving the fields blank, enter the following values (or any other values) in the empty fields:
If you enter a negative value in any of the fields, that particular field is highlighted in red as shown below:
Fix the error by entering only non-negative integers in the fields.
If you enter an alphabet or an alphanumeric string in any of the fields, that particular field is highlighted in red as shown below:
Fix the error by entering only non-negative integers in the fields.
5. To indicate if the package has an expiration date, select one of the options from the Expiration field:
Never — Package will not expire. By default, this option sets the expiration date to 100 years from the date the package was created.
Date — Use the date selector to select the date and time selector widget.
* 
You cannot create two packages with the same name and version number. If a message is displayed that states that the package name and version exist, provide a unique name and version combination.
6. Select the File-Based Package tab.
The Directory Structure section displays the contents of the TW.RSM.Thing.FileRepository directory.
You can perform the following actions under the Directory Structure section:
If the script file that you want to deliver to the asset is not available in the TW.RSM.Thing.FileRepository folder, click to upload a file to the ThingWorx repository.
Click to download the file to the default download location on your machine.
Click to delete the file from the repository.
7. Under the Directory Structure section, navigate to the script file that you want to deliver to the asset, and under the Directory Content section, select the script file to display its name in the Selected Content Zip File Name field.
Under the Directory Content section, the following information is available for each file:
Name — If the file is available in the ThingWorx repository, it specifies the name of the file with its extension. If the file is uploaded to the repository, then the timestamp (in Epoch time) is appended to the file name. This timestamp distinguishes between two files with the same name.
Upload Date — Specifies the date and time at which the file is added to the ThingWorx repository.
Size — Specifies the size of the file in bytes.
Path — Specifies the absolute path of the file in the ThingWorx repository.
8. In the Instruction File Name in Zip File field, enter the full name of the instruction file that is contained in the selected zip file.
9. Click Save to save the package.
The Add or Modify Dependencies page appears. Adding or modifying dependencies is an optional step. For more information, see Add or Modify Package Dependencies.
10. If you added package dependencies, click Save.
The Create Test Deployment page appears. Creating a test deployment is an optional step. For more information, see Test Package Deployment.
11. Optionally, you can specify the level of access to provide for specific users or user groups. For more information, see Specify User Access Control.
12. Continue to publish the package.