The Snowflake .NET connector supports the following .NET framework and library versions:
The connector targets netstandard2.0 but only the versions listed above are tested and supported.
Starting from version 5.2.0, the connector uses multi-targeting to provide optimized builds for different platforms:
| Target Framework | Platform | Description |
|---|---|---|
net481 | Windows (.NET Framework 4.8.1) | Optimized build for Windows .NET Framework without Mono.Unix |
net8.0-windows | Windows (.NET 8+) | Optimized build for Windows .NET 8+ without Mono.Unix |
net10.0-windows | Windows (.NET 10+) | Optimized build for Windows .NET 10+ without Mono.Unix |
net8.0 | Linux, macOS (.NET 8+) | Full Unix file system support with Mono.Unix |
net10.0 | Linux, macOS (.NET 10+) | Full Unix file system support with Mono.Unix |
netstandard2.0 | All platforms | Backward compatibility for older .NET versions |
NuGet automatically selects the appropriate build based on the application's target framework and operating system.
net481 build without the Mono.Unix dependency.net8.0-windows or net10.0-windows) without the Mono.Unix dependency.net8.0 or net10.0) with full Unix file system support.netstandard2.0 build for backward compatibility.Note: On Linux, only glibc-based distributions are supported (e.g. Ubuntu, Debian, RHEL, CentOS). Musl-based distributions (e.g. Alpine), Android-based runtimes (Bionic), and other non-glibc environments are not supported.
Please refer to the Notice section for information about safe usage of the .NET Driver.
The NuGet package ID is Snowflake.Data. Install it via any of the standard methods:
Package Manager Console:
PM> Install-Package Snowflake.Data
.NET CLI:
dotnet add package Snowflake.Data
Visual Studio UI: Tools > NuGet Package Manager > Manage NuGet Packages for Solution > search for Snowflake.Data.
Packages are also available for direct download from nuget.org.
Starting from version v4.2.0 the driver package is signed, allowing verification of its authenticity and integrity.
cosign.nupkg) from nuget, e.g.: https://www.nuget.org/packages/Snowflake.Data/4.2.0cosign verify-blob snowflake.data.4.2.0.nupkg \
--key snowflake-connector-net-v4.2.0.pub \
--signature Snowflake.Data.4.2.0.nupkg.sig
Verified OK
Detailed documentation for each area of the driver is maintained in separate pages. The table below links to the relevant guide for each topic.
| Topic | Description | Documentation |
|---|---|---|
| Connecting | Connection string parameters and authentication methods | Connecting |
| Connection Pools | Pool lifecycle, sizing, and configuration (v4.0.0+) | Connection Pooling |
| Data Types | .NET to Snowflake type mapping, Arrow format | Data Types |
| Querying Data | Sync/async queries, bindings, multi-statement support | Querying Data |
| Structured Types | Reading objects, arrays, and maps into .NET types | Structured Types |
| Vector Type | Reading VECTOR(INT) / VECTOR(FLOAT) columns | Vector Type |
| Stage Files | PUT/GET commands for uploading and downloading files | Stage Files |
| Logging | Built-in and custom ILogger integration, easy logging | Logging |
| Certificate Validation | CRL-based revocation checks (differs from other Snowflake drivers) | Certificate Validation |
| Cache | Token caching for SSO/MFA/OAuth, CRL cache | Cache |
CVE-2019-0820 - This CVE has been reported in systems.text.regularexpressions.dll which is used by the regular expressions packages - systems.text.regularexpressions.4.3.1.nupkg. This vulnerability manifests itself ONLY when the following .NET runtime environments are being used:
* v1.0 branch: 1.0 - 1.0.16 (exclusive)
* v1.1 branch: 1.1 - 1.1.13 (exclusive)
* v2.1 branch: 2.1 - 2.1.11 (exclusive)
* v2.2 branch: 2.2 - 2.2.5 (exclusive)
In order to mitigate this vulnerability, we recommend to update to higher Runtime versions. If you're already running on a .NET Runtime version higher than the ones listed above, you're not going to be affected by this vulnerability.
Logging - Snowflake has identified an issue on Feb 20, 2020, with our logging code for the .NET drivers in which we write Master and Session tokens in the clear to the debug logs. The debug logs are collected locally on the drive where your programs are running. This issue impacts only those instances where the programs are run with debug flags enabled, i.e. setting the log level value= "Debug" or "All" in the log4Net config
Under normal conditions, the Master and Session tokens captured in the log files are short-lived for about 4 and 1 hours, respectively. They will expire after the 4-hour window unless explicitly refreshed, in which case they could be refreshed indefinitely.
If you are using the .NET driver please take the following action:
Global HTTP connection settings - Snowflake has identified an issue where the driver is globally enforcing TLS 1.2 and certificate revocation checks with the .NET Driver v1.2.1 and earlier versions. Starting with v2.0.0, the driver will set these locally.
Certificate Revocation List not performed where insecureMode was disabled - Snowflake has identified vulnerability where the checks against the Certificate Revocation List (CRL) were not performed where the insecureMode flag was set to false, which is the default setting. From version v2.1.5 CRL is working back as intended.
This driver currently does not support GCP regional endpoints. Please ensure that any workloads using through this driver do not require support for regional endpoints on GCP. If you have questions about this, please contact Snowflake Support.
The driver uses Rust library called sf_mini_core, you can find its source code here
Note that the driver is now targeting .NET Standard 2.0. When upgrading, you might also need to run "Update-Package -reinstall" to update the dependencies.
See more:
If you would like to contribute to this project, please get to know coding conventions we would like to follow: Coding conventions.
Install dotnet, git, nuget, and mono (only on Mac).
git clone git@github.com:snowflakedb/snowflake-connector-net snowflake-connector-net
cd snowflake-connector-net
nuget restore
cd Snowflake.Data
dotnet build --configuration Release
Add a parameters.json file to Snowflake.Data.Tests
dotnet build
(top 30 of 81)
94 commits
88 commits
61 commits
44 commits
C#
99.4%
The Snowflake .NET connector supports the following .NET framework and library versions:
The connector targets netstandard2.0 but only the versions listed above are tested and supported.
Starting from version 5.2.0, the connector uses multi-targeting to provide optimized builds for different platforms:
| Target Framework | Platform | Description |
|---|---|---|
net481 | Windows (.NET Framework 4.8.1) | Optimized build for Windows .NET Framework without Mono.Unix |
net8.0-windows | Windows (.NET 8+) | Optimized build for Windows .NET 8+ without Mono.Unix |
net10.0-windows | Windows (.NET 10+) | Optimized build for Windows .NET 10+ without Mono.Unix |
net8.0 | Linux, macOS (.NET 8+) | Full Unix file system support with Mono.Unix |
net10.0 | Linux, macOS (.NET 10+) | Full Unix file system support with Mono.Unix |
netstandard2.0 | All platforms | Backward compatibility for older .NET versions |
NuGet automatically selects the appropriate build based on the application's target framework and operating system.
net481 build without the Mono.Unix dependency.net8.0-windows or net10.0-windows) without the Mono.Unix dependency.net8.0 or net10.0) with full Unix file system support.netstandard2.0 build for backward compatibility.Note: On Linux, only glibc-based distributions are supported (e.g. Ubuntu, Debian, RHEL, CentOS). Musl-based distributions (e.g. Alpine), Android-based runtimes (Bionic), and other non-glibc environments are not supported.
Please refer to the Notice section for information about safe usage of the .NET Driver.
The NuGet package ID is Snowflake.Data. Install it via any of the standard methods:
Package Manager Console:
PM> Install-Package Snowflake.Data
.NET CLI:
dotnet add package Snowflake.Data
Visual Studio UI: Tools > NuGet Package Manager > Manage NuGet Packages for Solution > search for Snowflake.Data.
Packages are also available for direct download from nuget.org.
Starting from version v4.2.0 the driver package is signed, allowing verification of its authenticity and integrity.
cosign.nupkg) from nuget, e.g.: https://www.nuget.org/packages/Snowflake.Data/4.2.0cosign verify-blob snowflake.data.4.2.0.nupkg \
--key snowflake-connector-net-v4.2.0.pub \
--signature Snowflake.Data.4.2.0.nupkg.sig
Verified OK
Detailed documentation for each area of the driver is maintained in separate pages. The table below links to the relevant guide for each topic.
| Topic | Description | Documentation |
|---|---|---|
| Connecting | Connection string parameters and authentication methods | Connecting |
| Connection Pools | Pool lifecycle, sizing, and configuration (v4.0.0+) | Connection Pooling |
| Data Types | .NET to Snowflake type mapping, Arrow format | Data Types |
| Querying Data | Sync/async queries, bindings, multi-statement support | Querying Data |
| Structured Types | Reading objects, arrays, and maps into .NET types | Structured Types |
| Vector Type | Reading VECTOR(INT) / VECTOR(FLOAT) columns | Vector Type |
| Stage Files | PUT/GET commands for uploading and downloading files | Stage Files |
| Logging | Built-in and custom ILogger integration, easy logging | Logging |
| Certificate Validation | CRL-based revocation checks (differs from other Snowflake drivers) | Certificate Validation |
| Cache | Token caching for SSO/MFA/OAuth, CRL cache | Cache |
CVE-2019-0820 - This CVE has been reported in systems.text.regularexpressions.dll which is used by the regular expressions packages - systems.text.regularexpressions.4.3.1.nupkg. This vulnerability manifests itself ONLY when the following .NET runtime environments are being used:
* v1.0 branch: 1.0 - 1.0.16 (exclusive)
* v1.1 branch: 1.1 - 1.1.13 (exclusive)
* v2.1 branch: 2.1 - 2.1.11 (exclusive)
* v2.2 branch: 2.2 - 2.2.5 (exclusive)
In order to mitigate this vulnerability, we recommend to update to higher Runtime versions. If you're already running on a .NET Runtime version higher than the ones listed above, you're not going to be affected by this vulnerability.
Logging - Snowflake has identified an issue on Feb 20, 2020, with our logging code for the .NET drivers in which we write Master and Session tokens in the clear to the debug logs. The debug logs are collected locally on the drive where your programs are running. This issue impacts only those instances where the programs are run with debug flags enabled, i.e. setting the log level value= "Debug" or "All" in the log4Net config
Under normal conditions, the Master and Session tokens captured in the log files are short-lived for about 4 and 1 hours, respectively. They will expire after the 4-hour window unless explicitly refreshed, in which case they could be refreshed indefinitely.
If you are using the .NET driver please take the following action:
Global HTTP connection settings - Snowflake has identified an issue where the driver is globally enforcing TLS 1.2 and certificate revocation checks with the .NET Driver v1.2.1 and earlier versions. Starting with v2.0.0, the driver will set these locally.
Certificate Revocation List not performed where insecureMode was disabled - Snowflake has identified vulnerability where the checks against the Certificate Revocation List (CRL) were not performed where the insecureMode flag was set to false, which is the default setting. From version v2.1.5 CRL is working back as intended.
This driver currently does not support GCP regional endpoints. Please ensure that any workloads using through this driver do not require support for regional endpoints on GCP. If you have questions about this, please contact Snowflake Support.
The driver uses Rust library called sf_mini_core, you can find its source code here
Note that the driver is now targeting .NET Standard 2.0. When upgrading, you might also need to run "Update-Package -reinstall" to update the dependencies.
See more:
If you would like to contribute to this project, please get to know coding conventions we would like to follow: Coding conventions.
Install dotnet, git, nuget, and mono (only on Mac).
git clone git@github.com:snowflakedb/snowflake-connector-net snowflake-connector-net
cd snowflake-connector-net
nuget restore
cd Snowflake.Data
dotnet build --configuration Release
Add a parameters.json file to Snowflake.Data.Tests
dotnet build
(top 30 of 81)
94 commits
88 commits
61 commits
44 commits
C#
99.4%