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