DLL FAQs
Why are we writing an FAQ for DLL file management with Platform v8+?
In alignment with the goal of 100% customer satisfaction, the OneStream platform is evolving so that Cloud Operations can deliver superior performance, functionality, and customer self-service. This effort requires OneStream to transition existing paradigms and policies to modern cloud native approaches that embrace enhanced capabilities.
With Platform v8+, OneStream is facing this challenge by requiring adoption of modern technologies, and creating cloud native procedures that exhibit higher levels of security and automation. With that theme in mind, we are strongly recommending changes to DLL file management to ensure a robust, yet secure cloud operations paradigm.
What is changing in Platform v8+ with regards to DLL file management?
With the transition from VPN to Smart Integration Connector (SIC) in Platform v8+, any custom DLL used within your application for data source connectivity will be transitioned from its pre-v8 source location in the cloud to the Local Gateway Server Referenced Assemblies folder, which exists within the customer’s network. Typically these DLLs are used to establish connectivity or encrypt data from a local data source. Locally installed DLLs can be leveraged by SIC in a number of ways, including through SIC remote business rules.
What are the standard DLLs included with the OneStream Platform and how are they invoked by Business Rules?
With v8, the following DLL files are installed with the OneStream Platform:
- DocumentFormat.OpenXml.dll
- HtmlTextWriter.dll
- IronCompress.dll
- Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll
- Microsoft.Bcl.AsyncInterfaces.dll
- Microsoft.CodeAnalysis.CSharp.dll
- Microsoft.CodeAnalysis.dll
- Microsoft.CodeAnalysis.VisualBasic.dll
- Microsoft.Data.Analysis.dll
- Microsoft.Data.Edm.dll
- Microsoft.Data.OData.dll
- Microsoft.Data.Services.Client.dll
- Microsoft.Data.SqlClient.dll
- Microsoft.Extensions.Configuration.Json.dll
- Microsoft.Identity.Client.dll
- Microsoft.Identity.Client.Extensions.Msal.dll
- Microsoft.IdentityModel.Abstractions.dll
- Microsoft.IdentityModel.Clients.ActiveDirectory.dll
- Microsoft.IdentityModel.JsonWebTokens.dll
- Microsoft.IdentityModel.Protocols.dll
- Microsoft.IdentityModel.Protocols.OpenIdConnect.dll
- Microsoft.IdentityModel.Protocols.WsFederation.dll
- Microsoft.IdentityModel.Tokens.dll
- Microsoft.IdentityModel.Tokens.Saml.dll
- Microsoft.IdentityModel.Xml.dll
- Microsoft.OData.Client.dll
- Microsoft.OData.Core.dll
- Microsoft.OData.Edm.dll
- Microsoft.Rest.ClientRuntime.dll
- Microsoft.SqlServer.Server.dll
- Newtonsoft.Json.Bson.dll
- Newtonsoft.Json.dll
- Parquet.dll
- Polly.dll
- Rsk.Saml.dll
- SkiaSharp.dll
- Snappier.dll
- System.CodeDom.dll
- System.Collections.Immutable.dll
- System.Configuration.ConfigurationManager.dll
- System.Data.Odbc.dll
- System.Data.OleDb.dll
- System.Data.SqlClient.dll
- System.Net.WebSockets.WebSocketProtocol.dll
- System.Spatial.dll
- System.Text.Encoding.CodePages.dll
- System.Text.Encodings.Web.dll
- System.Text.Json.dll
- System.Web.Services.Description.dll
- WinSCPnet.dll
- ZstdSharp.dl
To utilize a DLL file from this list in a Business Rule, list the name of the DLL in the Referenced Assemblies setting. You can reference multiple assemblies by separating the names with a semicolon:
How do I reference a Microsoft DLL packaged with .NET6 in my OneStream Business Rule?
Reference a Microsoft DLL in the same way as you would DLLs packaged with the OneStream Platform, as outlined in the previous FAQ. From the Properties tab of the Business Rule, simply refer to the DLL file name (such as “System.IO.Compression.DLL”) in the Referenced Assemblies setting.
I’m a new cloud customer, provided OneStream Platform 8.0 (or higher) – can I ask OneStream to place DLL files in the cloud Reference Assembly Folder?
Our guidance to new customers adopting Platform 8.0 or higher is to not have DLL files in the Storage Account ‘Integrations’ folder . This practice has been discontinued in alignment with our new Cloud Operation practices.
I’m an existing cloud customer, with existing Business Rules that reference DLL files in the cloud Reference Assembly Folder. Can I continue having these DLL file references ?
All custom DLL files necessary for local data source integration will need to be transitioned from the OneStream Reference Assembly (“Integrations”) Folder to the Local Gateway Server. This transition will be included in the upgrade plan. Other DLL file references may continue with Platform v8+. This policy is under review and any changes will be publically announced with a one year notice. Continue to use the XF\<dll file name> syntax in the Business Rule Reference Assemblies (“Integrations”) folder to reference these DLLs.
Is the ‘Integrations Folder’ the same thing as the ‘Reference Assemblies Folder’?
Yes
I’m an existing cloud customer upgrading to Platform v8+. Can I store DLL files in the ‘Bin’ folder?
No, this is a reserved folder.
Has OneStream observed commonly used DLLs failing compilation because the DLLs are .NET framework based? Are .NET Standard or .NET Core equivalents known?
Yes. Here are a few examples. If you have any questions, feel free to contact OneStream Cloud Management during the Migration Phase of your v8+ upgrade.
.NET Framework DLL failing v8+ compilation
.NET Std or .NET Core equivalent
Microsoft.Azure.Storage.Blob
AzureBlob.zip
Microsoft.Azure.KeyVault
AzureKeyVault.zip
Microsoft.Azure.Storage.File
AzureFile.zip
Google.Apis.Storage.V1
GoogleS3.zip
AWSSDK.S3
AWSS3.zip
Netstandard
(now included in OneStream install)
WinSCPnet
(now included in OneStream install)
Microsoft.WindowsAzure.Storage.xxx
<research tbd>
Note: zip files are to be unzipped and DLL file contents replace the corresponding .NET framework version files
DLLs that must be transitioned to the SIC Local Gateway Server with v8+
.NET Framework DLL failing v8+ compilation
.NET Std or .NET Core equivalent
Microsoft.Office.xxx
Microsoft.Office.xxx (requires Microsoft license)
Oracle.ManagedDataAccess
Driver version of DLL is included with Local Gateway Server install