Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Summary: This section provides information about sharing a custom extension with the wider CAST user community.


If you have created a custom extension that you are actively using and you think other users could benefit from this, you can share your extension:

  • with the wider CAST community using CAST Extend for third-party custom extensions
  • within your organization using your own "NuGet" server???? Still valid??

On this page:

Prerequisites to sharing your extension

plugin.nuspec file

The custom extension you have created must contain a plugin.nuspec file, as detailed in Extension description file.

Have your extension in an appropriately named folder

Your extension should already be stored in an appropriately named folder. Either:

  • for CAST extensions provided by the Users Community team: com.castsoftware.uc.nameoftheextension
  • for CAST extensions provided by the CAST Labs: com.castsoftware.labs.nameoftheextension
Please see Extension description file for more information.

Packaging in .nupkg format

You can only share an extension in .nupkg format (this is essentially an archive file) - any other formats will be rejected by CAST Extend or by your own NuGet server. To create the .nupkg file, you should proceed as follows:

  • The packaging is executed with NuGet.exe - please see NuGet.exe for more information about this and where you can obtain it.
  • CAST recommends using a batch script to run the packaging - this script should be run from outside the folder containing your extension. An example is shown below - please adapt this to include the name of the folder containing your extension:
set EnableNugetPackageRestore=true
NuGet.exe pack com.castsoftware.uc.nameoftheextension\plugin.nuspec
  • If the package action is successful, a file entitled com.castsoftware.uc.nameoftheextension.<version_number>.nupkg will be created. The <version_number> will be determined automatically by the contents of the <version> tag in the plugin.nuspec file.

nuget pack command ignore empty directories. So those emply directories will not be included in the resulting package. If you need to rely on existence of empty directories inside your extension you need to do a 'on demand' creation of that directory inside your own code.

Known examples are:

  • Temporary folder for UA preprocessing
    • Configuration\Languages\<language>\plugin\gen
    • Configuration\Languages\<language>\plugin\results
    • Workaround is to create them if needed








Second step : publish  the extension for sharing

You have several solutions for sharing extensions :

  • have an http server and publish to it
  • have a shared folder and copy nupkg files into it


The HTTP server way

You need a NuGet server.

Here we assume that you publish to the existing CAST NuGet Server located here :

Command line for uploading a nupkg to this server :

NuGet.exe push -s password


where <password> is the server password (not mentioned here, you need to ask the server administrator).


Then this plugin will be available through ExtensionDownloader as the server is activated by default.

The Shared folder way

Simpler : copy the into that folder.

Then this plugin will be available through ExtensionDownloader if you have configured that folder path as an active server.


  • No labels