Deployment

The user mode API comes in two pieces, both of which must be deployed along with the application:

  1. A .NET assembly (managed), named callback.cbfsvault.dll (or callback.cbfsvault.NetStd.dll, for .NET Standard).
  2. A native library (unmanaged), named cbfsvault20.dll, available for both 32-bit (x86) and 64-bit (x64, ARM64) processor architectures.

When deploying the application, copy both the .NET assembly and the native library to the target system and place them next to the application's executable file, (on Windows, it has the .exe extension.

Windows Only:
The .NET assembly may alternatively be deployed to the Global Assembly Cache (GAC), please refer to the following articles for more information:

NuGet Notes

The NuGet package is designed to work with projects that track NuGet dependencies using the newer PackageReference format; this is the default format for most modern .NET project types. A notable exception is projects targeting the .NET Framework, which still use the older packages.config format by default; such projects should be migrated to the PackageReference format.

After the NuGet package is added to a project, both the managed .NET assembly and the unmanaged native library will be copied to the project's output directory anytime the project is built. However, the exact files copied to the output directory for the native library will vary based on the project type:

  • For .NET Core projects, a runtimes directory will be created in the output directory (if it does not already exist), and versions of the native library for each supported runtime identifer (RID) (e.g., win-x64) will be placed in the appropriate subdirectories. When the .NET Core application is distributed, the entire runtimes directory should be deployed alongside it.
  • For other types of projects (.NET Framework, UWP), only the native library version specific to the currently-selected platform target (e.g., x64) will be copied to the output directory.
    • For .NET Framework projects specifically, please note that the project's platform target (Project > Properties > Build Tab > Platform target) must be set to a real architecture. If it is set to "Any CPU", no native library will be copied to the output directory.

Windows:
The native library may alternatively be installed to the Windows System directory. This approach allows deploying both the 32-bit and 64-bit versions of the native library simultaneously, since each gets placed into the system directory that corresponds to the appropriate processor architecture.

Copyright (c) 2022 Callback Technologies, Inc. - All rights reserved.
CBFS Vault 2020 .NET Edition - Version 20.0 [Build 8347]