c# - 连接到 Oracle 服务器时找不到文件 'C:\SomePath\Oracle.DataAccess.Common.Configuration.Section.xsd'

标签 c# oracle entity-framework visual-studio

在我当前的项目中,我在将 Entity Framework 6 连接到我们的生产 Oracle 数据库时遇到了一些问题。

我现在所采取的步骤:

  1. 安装了支持 Entity Framework 6 的最新 (ODAC121010Beta2_64bit) o​​racle 客户端
  2. 添加对 C:\app\client\\product\12.1.0\client_1\odp.net\managed\common\Oracle.ManagedDataAccess.dll 的引用(复制本地 = false)
  3. 添加对 C:\app\client\\product\12.1.0\client_1\odp.net\managed\common\EF6\Oracle.ManagedDataAccess.EntityFramework.dll 的引用(复制本地 = true)编辑:奇怪的是,它被设置为“真”,而不是预期的假。
  4. 手动添加我的供应商

    <providers>
      <provider invariantName="Oracle.ManagedDataAccess.Client"
        type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework" />
    </providers>
    

使用此设置,Visual Studio 可以连接到我们的 Oracle 数据库并构建我的模型。太棒了!

但是当我运行我的应用程序时,它在我第一次获取数据时失败了:

    Exception:Caught: "Could not find file 'C:\PATH_TO_MY_PROJECT\bin\Debug\Oracle.DataAccess.Common.Configuration.Section.xsd'." (System.IO.FileNotFoundException)

文件 Oracle.DataAccess.Common.Configuration.Section.xsd 与我在其他一些文件中引用的 Oracle.ManagedDataAccess.dll 位于同一路径。

我的 PATH 环境成立

    C:\app\client\<USER>\product\12.1.0\client_1
    C:\app\client\<USER>\product\12.1.0\client_1\bin

Google 在 Oracle.DataAccess.Common.Configuration.Section.xsd 上搜索时给出 0 个结果,这可能是将其发布在这里的主要原因。

此处建议的解决方案是什么?为什么它在我的 DEBUG 文件夹中而不是在 oracle 驱动程序文件夹中搜索这些文件?

编辑 请求的环境变量:

ADT_HOME=C:\Users\TDC\AppData\Local\Android\android-sdk
ALLUSERSPROFILE=C:\ProgramData
ANT_HOME=C:\apache-ant-1.9.3
APPDATA=C:\Users\TDC\AppData\Roaming
asl.log=Destination=file
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=WG-LT-TIELE
ComSpec=C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
GIT_HOME=C:\Program Files (x86)\Git
HOMEDRIVE=U:
HOMEPATH=\
HOMESHARE=\\ASW-FILE\User Shared Folders$\TDC
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_55
LOCALAPPDATA=C:\Users\TDC\AppData\Local
LOGONSERVER=\\COS-DC-01
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:\app\client\TDC\product\12.1.0\client_1;C:\app\client\TDC\product\12.1.0\client_1\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Java\jdk1.7.0_55\bin;C:\Users\TDC\AppData\Local\Android\android-sdk\tools;C:\Users\TDC\AppData\Local\Android\android-sdk\platform-tools;C:\apache-ant-1.9.3\bin;C:\Program Files (x86)\nodejs\;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Java\jdk1.7.0_55\bin;C:\Users\TDC\AppData\Local\Android\android-sdk\tools;C:\Users\TDC\AppData\Local\Android\android-sdk\platform-tools;C:\Program Files (x86)\Git\cmd\cmd;C:\Users\TDC\AppData\Roaming\npm;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2a07
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\TDC\AppData\Local\Temp
TMP=C:\Users\TDC\AppData\Local\Temp
USERDNSDOMAIN=WGIT.LOCAL
USERDOMAIN=WGIT
USERDOMAIN_ROAMINGPROFILE=WGIT
USERNAME=TDC
USERPROFILE=C:\Users\TDC
VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
windir=C:\Windows

最佳答案

当尝试使用与 Oracle 的 Entity Framework 连接运行代码时,会出现上述问题。此上下文/模型是使用与我运行代码相同的设备创建的。

但是.. 在尝试重新创建此上下文时,visual studio 说我的提供程序不兼容。第53次重装oracle驱动时上述问题解决。

所以我的问题已经解决了,但我仍然不知道 oracle 安装程序是如何解决它的。

关于c# - 连接到 Oracle 服务器时找不到文件 'C:\SomePath\Oracle.DataAccess.Common.Configuration.Section.xsd',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26992598/

相关文章:

C# - ActiveX .DrawToBitmap 等效项

c# - 线程锁无限等待

c# - WPF 列表框布局 : multiple columns

oracle - 我需要一个递归查询来获取 oracle 中的计算字段

c# - Nopcommerce 更新实体问题

c# - Linq过滤包括

c# - 运行时如何知道装箱值类型的确切类型?

sql - Oracle 11g - 使用 RegEx 检查约束

sql - Oracle中如何计算唯一行数

c# - 通用 T GetByID<K>(K ID_)