已定义节或组名"oracle.manageddataaccess.client"

Gui*_*ira 4 oracle

将Oracle.ManagedDataAccess dll从版本4.121.1.0更新到版本4.121.2.0之后,因为我无法使用NHibernate在以前的版本中保存CLOB类型的值,所以在客户端计算机上它给出了以下错误:System.TypeInitializationException:类型初始化程序对于'OracleInternal.Common.ProviderConfig'引发了异常.---> System.Configuration.ConfigurationErrorsException:配置系统初始化失败---> System.Configuration.ConfigurationErrorsException:已经定义了节或组名'oracle.manageddataaccess.client'.对此的更新可能仅发生在定义它的配置级别.

在我的开发机器上没有发生这种情况,我查看了他的机器的machine.config文件,这部分没有包含在内,我已经尝试过使用和没有Nuget在app.config中添加的设置,但似乎没有任何工作.有谁知道如何解决这个问题?谢谢

Mer*_*051 8

放入 app.config 并删除或注释此部分:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- <configSections>
        <section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.18.3, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</configSections> -->
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<system.data>
Run Code Online (Sandbox Code Playgroud)

  • 请小心注释“configSections”。“configSections”内通常还有其他部分,例如“entityFramework”部分,如果注释掉,则会导致错误。只需注释“oracle.manageddataaccess.client”部分即可。 (2认同)

小智 6

从machine.config中删除带有oracle.manageddataaccess.client的部分.

来自NuGet Package的自述文件告诉您这样做.

  • 如果我没有修改 machine.config 的权限怎么办?也许它会破坏其他一些应用程序?但我仍然需要另一个(更新的)版本? (3认同)