Package overview
In order to deploy SDK Extensions into BPS you have to create .zip package with all necesary files. This is done automatically by our VS extension after using the publish option. More about building package is available here.
Basic package with no external dependencies
The most basic package structure consists of a manifest and one dll:
YourExtensions.zip # zip package
├── YourExtensions.json # package manifest
├── YourExtensions.dll # dll with extensions
Package with FormFieldExtensionJS
If there is any FormFieldExtensionJS in the package then a .bpspkg file is required for each form field extension. This file contains the front-end part for field extension and also is generated automatically by our extension to VS.
YourExtensions.zip # zip package
├── YourExtensions.json # package manifest
├── YourExtensions.dll # dll with extensions
├── FormFieldExtensionJS.bpspkg # file with FormFieldExtension
Package with external dependencies
If in extensions code is used any dll that BPS does not use(or use incompatible version) then you have to add also this dll to your package. More about when it is necessary you can read here.
YourExtensions.zip # zip package
├── YourExtensions.json # package manifest
├── YourExtensions.dll # dll with extensions
├── YourDependencies.dll # dll with dependencies
Package with separated external dependencies
BPS Portal is written in .NET 8 but BPS Service still use .NET Framework and as extensions can be executed by both the Portal and the Service then they must be written in standard 2.0. This also applies to all dependencies used in SDK extensions. So as long as you can provide all dependencies implemented correctly in standard 2.0 then you can use approach presented above. But in situations where this is not possible, the package allows you to provide dependencies separately for the Portal and Service. In this case dependencies should be placed in ServiceDependencies and PortalDependencies folders. Main dll with extensions and common dependencies still have to be placed in the root folder. This is also done automatically by our VS extension if in manifest are provided correct paths. More about how to get dll for correct runtime you can read here.
YourExtensions.zip # zip package
├── YourExtensions.json # package manifest
├── YourExtensions.dll # dll with extensions
├── CommonDependencies.dll # dll with common dependencies
├── PortalDependencies # folder with dependencies for Portal
│ ├── PortalDependencies1.dll # Portal dependecies
│ ├── PortalDependencies2.dll # Portal dependecies
├── ServiceDependencies # folder with dependencies for Service
│ ├── ServiceDependencies1.dll # Service dependecies
│ ├── ServiceDependencies2.dll # Service dependecies