Downloading ADO.Net Providers from Nuget

A number of ADO.Net providers are supplied for download from Nuget. Typically these Nuget packages are added to a Visual Studio Project and the required DLLs are downloaded as part of building the project. Downloading all the DLLs manually can be tricky so here is a guide:

 

First install the .NET SDK: https://dotnet.microsoft.com/en-us/download

 

This will give you the command line tool 'dotnet' and you can use the following Powershell commands to download the ADO.Net provider and required DLLs for Designer:

 

PostGres Provider (npgsql)

 

# Requires the .Net SDK: https://dotnet.microsoft.com/en-us/download

 

# Create a new C# project called PostGresProvider

dotnet new console -n PostGresProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location PostGresProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path PostGresProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path PostGresProvider.csproj

 

# Add Npgsql Nuget package to the project (version 8 is the most recent version that supports the .Net Framework)

dotnet add package npgsql --version 8.0.8

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\PostGresProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\PostGresProvider\bin\Release\net48\

 

Snowflake Provider (Snowflake.Data)

 

# Requires the .Net SDK:

# https://dotnet.microsoft.com/en-us/download

 

# Create a new C# project called SnowflakeProvider

dotnet new console -n SnowflakeProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location SnowflakeProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path SnowflakeProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path SnowflakeProvider.csproj

 

# Add Npgsql Nuget package to the project

dotnet add package Snowflake.Data

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\SnowflakeProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\SnowflakeProvider\bin\Release\net48\

 

MySql Provider (MySql.Data)

 

This is the Oracle supplied provider.

 

# Requires the .Net SDK:

# https://dotnet.microsoft.com/en-us/download

 

# Create a new C# project called MySqlProvider

dotnet new console -n MySqlProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location MySqlProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path MySqlProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path MySqlProvider.csproj

 

# Add Npgsql Nuget package to the project

dotnet add package MySql.Data

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\MySqlProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\MySqlProvider\bin\Release\net48\

 

MySql Provider (MySqlConnector)

 

This is the open source provider that connects to both MySql and MariaDB: https://github.com/mysql-net/MySqlConnector

 

# Requires the .Net SDK:

# https://dotnet.microsoft.com/en-us/download

 

# Create a new C# project called MySqlConnectorProvider

dotnet new console -n MySqlConnectorProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location MySqlConnectorProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path MySqlConnectorProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path MySqlConnectorProvider.csproj

 

# Add Npgsql Nuget package to the project

dotnet add package MySqlConnector

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\MySqlConnectorProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\MySqlConnectorProvider\bin\Release\net48\

 

DuckDB Provider

 

# Requires the .Net SDK:

# https://dotnet.microsoft.com/en-us/download

 

mkdir DuckDBProvider

 

# Create a new C# project called DuckDBProvider

dotnet new console -n DuckDBProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location DuckDBProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path DuckDBProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path DuckDBProvider.csproj

 

# Add Npgsql Nuget package to the project

dotnet add package DuckDB.NET.Data.Full

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\DuckDBProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\DuckDBProvider\bin\Release\net48\

 

Oracle ODP.Net (Managed) Provider

 

# Requires the .Net SDK: https://dotnet.microsoft.com/en-us/download

 

# Create a new C# project called ODPNetProvider

dotnet new console -n ODPNetProvider --use-program-main --langVersion 7.3

 

# Store current directory

Push-Location ODPNetProvider

 

# Change the project target to .Net Framework 4.8

(Get-Content -path ODPNetProvider.csproj -Raw) -replace '<TargetFramework>.*?</TargetFramework>','<TargetFramework>net48</TargetFramework>' | Set-Content -Path ODPNetProvider.csproj

 

# Add Npgsql Nuget package to the project

dotnet add package Oracle.ManagedDataAccess

 

# Build the project

dotnet build --configuration Release

 

# Remove unnecessary files

Remove-Item bin\Release\net48\ODPNetProvider.*

 

# Back to where we were

Pop-Location

 

# Files should be in .\ODPNetProvider\bin\Release\net48\

 

Troubleshooting

If you get this message running the scripts "error: There are no versions available for the package..." then you may need to add the default nuget package location by running this command:

dotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org