Tôi cảm thấy nỗi đau của bạn, vừa trải qua một cái gì đó tương tự trong một tình huống triển khai. Có thể bạn đã cài đặt nhiều ứng dụng khách và môi trường của bạn đang kéo dlls cho các bản phát hành cũ hơn (ngay cả khi bạn có tham chiếu chính xác oracle.dataaccess.dll mới nhất trong dự án của mình). Khắc phục điều này trên môi trường nhà phát triển của bạn là một chuyện, máy chủ triển khai sản phẩm là một chuyện khác. Không chắc tình huống triển khai của bạn là gì, nhưng đây là những gì hiệu quả với tôi.
Sau khi cố gắng nâng cấp odp.net trong trang chủ oracle hiện có, thêm trang chủ oracle mới, v.v., tôi thấy cách dễ nhất để khắc phục mọi thứ là tải xuống odac với triển khai xcopy từ Oracle và làm theo readme (và xem tại đây cho một bài báo cũ hơn về điều này). Về cơ bản, bạn sẽ chạy tệp install.bat để thiết lập cục bộ (trong thư mục riêng biệt, của tôi là c:\ oracle_odac), sau đó thay đổi tham chiếu dự án của bạn để trỏ đến oracle.dataaccess.dll trong thư mục mới này (tôi đã sử dụng 4 thay vì 2.x), và thêm các ngăn chứa thư mục mới vào trước đường dẫn của bạn (c:\ oracle_odac \ bin và c:\ oracle_odac \ odp.net \ bin \ 4). Trên máy chủ triển khai của mình, bạn chỉ cần sao chép toàn bộ thư mục c:\ oracle_odac qua (thông qua xcopy hoặc tuy nhiên) và thiết lập đường dẫn.
Điều đó nói rằng, tôi nóng lòng chờ đợi bản phát hành chính thức của được quản lý đầy đủ odp.net từ Oracle (hiện đang ở phiên bản beta).
CHỈNH SỬA:Chỉ để thêm rằng bạn có thể tránh gặp rắc rối với PATH nếu bạn thiết lập tệp dllpath trong ứng dụng hoặc web của mình. Ví dụ:
<configuration>
...
<configSections>
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
...
<oracle.dataaccess.client>
<settings>
<add name="DllPath" value="c:\oracle_odac\bin"/>
</settings>
</oracle.dataaccess.client>
...
Điều này sẽ ghi đè các cài đặt khác như sổ đăng ký hoặc machine.config. Và nó sẽ cho phép nhiều cấu hình odp.net tồn tại hòa bình và cho phép mỗi ứng dụng trỏ đến phiên bản ứng dụng cần trên cùng một máy chủ.