Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle.Dataaccess nằm trong GAC. Tôi có thể kiểm soát phiên bản tôi sử dụng không?

Có thể buộc ứng dụng của bạn luôn sử dụng phiên bản ODP và ODAC mà bạn muốn.

  1. Buộc phiên bản ODP:sử dụng thủ thuật AssemblyBinding do Robert đăng để buộc sử dụng phiên bản Oracle.DataAccess của bạn thay vì phiên bản GAC'd. Ví dụ:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Oracle.DataAccess"  culture="neutral" publicKeyToken="89b483f429c47342"/>
            <codeBase version="4.112.3.0" href="FILE://Oracle.DataAccess.dll"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  2. Buộc phiên bản ODAC:ODP DLL phụ thuộc vào một tập hợp các thành phần Oracle được chia sẻ (ứng dụng khách tức thì, dlls OCI không được quản lý). Một cách để có được những thứ này là thông qua gói ODAC. Bạn có thể xác định (trên cơ sở mỗi ứng dụng), gói ODAC nào bạn muốn sử dụng. Theo truyền thống, điều này được thực hiện thông qua biến PATH env, nhưng bây giờ nó có thể được xác định thông qua config:

    <configuration>
      <configSections>
        <section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </configSections>
    
      <oracle.dataaccess.client>
        <settings>
          <add name="DllPath" value="C:\somefolder\ODAC_11.2.0.3.0_32bit\bin" />
        </settings>
      </oracle.dataaccess.client>
    </configuration>
    
  3. Để phòng ngừa thêm, bạn luôn có thể xóa DLL chính sách nhà xuất bản của GAC'd, để đảm bảo không bao giờ có bất kỳ điều gì thú vị xảy ra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Môi trường phát triển chất lượng để viết Oracle SQL là gì?

  2. Làm cách nào để chỉ định danh sách biểu thức biến trong truy vấn Pro * C?

  3. Tại sao OCI8 / Oracle oci_bind_array_by_name của PHP không hoạt động với tôi?

  4. Nhận giờ có sẵn trong lớp học trong khoảng thời gian ngày

  5. Tạo truy vấn CẬP NHẬT TRẢ LẠI trong Hibernate