32

I am trying to connect to oracle database from .net core 3.1 using ado.net here's my code

private OracleConnection GetOracleConnection()
{
            string conString = "Data Source=Q550.adr.XXXX.com;Persist Security,Info=True;User ID=XXXX;Password=CCC39";
            OracleConnection con = new OracleConnection(conString);
            return con;
}

but when this function executes following exception occured at line number 2

System.TypeInitializationException: 'The type initializer for 'OracleInternal.Common.ProviderConfig' threw an exception

FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. **

Can anyone tell me what's happening ??

Sunil Tripathi
  • 526
  • 1
  • 5
  • 12
  • Try this : Go to project properties and uncheck prefer 32 bit. – Clint Jan 27 '20 at 16:55
  • 2
    By any chance, do you refer the ConfigurationManager.ConnectionStrings or added ConfigurationManager in your namespace? In .net core, you need to include the System.Configuration as a package to use the ConfigurationManager object to access the AppSettings and ConnectionStrings. – Ak777 Jan 27 '20 at 17:05
  • 1
    alternatively , you can `Install-Package System.Configuration.ConfigurationManager` from nuget – Clint Jan 27 '20 at 17:18
  • "prefer 32 bit" is unchecked (by default when creating the project) and doesn't solve the problem. Installing System.Configuration.ConfigurationManager as you suggest does it. – Sebastián Palma Jul 25 '20 at 20:23
  • exactly same problem here when trying to connect to MySQL – Leo Muller Jan 20 '21 at 14:08
  • 1
    Installing the package doesn't help when deploying because the dll is not included in the build – B2K Feb 25 '22 at 18:46

2 Answers2

43

You can Install System.Configuration.ConfigurationManager from Nuget

Install-Package System.Configuration.ConfigurationManager

This problem is a known issue as you can see here and the recommended solution is nuget package

https://github.com/pusher/pusher-websocket-dotnet/issues/34

Clint
  • 6,011
  • 1
  • 21
  • 28
0

I tried adding a reference to NuGet package System.Configuration.ConfigurationManager, but the latest version of this library (7.0) doesn't contain the ConfigurationManager anymore. So then it still doesn't compile. After a lot of seaching, I figured out I had to include version 4.5 of the NuGet package.

Tsjakka
  • 71
  • 7