Не може да се зареди файл или сборка „Oracle.DataAccess, версия=4.121.2.0, когато са инсталирани Oracle 11 и 12

На моята локална машина, която използвам за уеб разработка на ASP.NET, имам няколко клиента Oracle 11 (11.2.0.1, 11.2.0.2, 11.2.0.3). Моят уебсайт Използвайте Oracle.DataAccess.Dll (ODP.NET всички 32 бита)

Току-що инсталирах пакета Oracle 12c ODPwithODAC 32 бита.

И сега уебсайтът, който използва Oracle.DataAccess.dll 11.2. вече не работи. Имам тази грешка:

Не може да се зареди файл или сборка „Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342“ или една от неговите зависимости. Системата не може да намери посочения файл.

Описание: Възникна необработено изключение по време на изпълнението на текущата уеб заявка. Моля, прегледайте проследяването на стека за повече информация относно грешката и откъде произлиза в кода.

Подробности за изключение: System.IO.FileNotFoundException: Не може да се зареди файл или сборка „Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342“ или една от неговите зависимости. Системата не може да намери посочения файл.

Грешка в източника:

Генерирано е необработено изключение по време на изпълнението на текущата уеб заявка. Информация относно произхода и местоположението на изключението може да бъде идентифицирана с помощта на проследяването на стека на изключението по-долу.

Проследяване на стека:

[FileNotFoundException: Не може да се зареди файл или сборка „Oracle.DataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342“ или една от неговите зависимости. Системата не може да намери посочения файл.] Oracle.Web.Security.OracleMembershipProvider.CheckPassword(Потребителско име на низ, парола на низ, Boolean updateLastLoginActivityDate, Boolean failIfNotApproved, String& salt, Int32& passwordFormat) +0 Oracle.Web.Security.OracleMembershipProvider.ValidateUser(String потребителско име, парола за низ) +105 System.Web.UI.WebControls.Login.AuthenticateUsingMembershipProvider(AuthenticateEventArgs e) +59 System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +113 System.Web.UI.WebControls.Login .AttemptLogin() +119 System.Web.UI.WebControls.Login.OnBubbleEvent(Източник на обект, EventArgs e) +75 System.Web.UI.Control.RaiseBubbleEvent(Източник на обект, аргументи на EventArgs) +37 System.Web.UI. WebControls.Button.OnCommand(CommandEventArgs e) +114 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +164


person JudgeProphet    schedule 21.05.2015    source източник
comment
изглежда, че версията на сборката се е променила, така че трябва да я актуализирате във вашата конфигурация   -  person dansasu11    schedule 21.05.2015
comment
@dansasu11 Нещата са там, че искам моето WebApp да работи под моя 11.2 Oracle клиент, дори ако съм инсталирал версия 12.1 рамо до рамо.   -  person JudgeProphet    schedule 22.05.2015
comment
Опитвали ли сте да копирате точната версия на Oracle.DataAccess.dll за 11.2 във вашата bin директория?   -  person CodeZombie    schedule 22.05.2015
comment
@CodeZombie Да, всички мои референции са настроени на локално копие, така че когато създам моето решение, всички dll се копират в папката ми bin   -  person JudgeProphet    schedule 22.05.2015


Отговори (4)


Първо, с Oracle Home Selector избирам Oracle Home, който исках .

Във Visual Studio зададох свойството „Конкретна версия“ на „false“ в моята справка „Oracle.DatabaseAccess“.

Прозорец със свойства

person JudgeProphet    schedule 22.05.2015

Имах този проблем. Използвам Oracle 12c и трябваше да променя „целевата платформа“ на x64. Така че проверете версията на вашата система и я променете на x86 или x64.

person Tiago Ávila    schedule 05.05.2016
comment
Дори ако промените платформата, уверете се, че в свойствата на вашия проект, в раздела за опции за изграждане, опцията Предпочитане на 32 бита не е отметната, ако искате да използвате x64. - person JudgeProphet; 05.05.2016
comment
защо някой би бил принуден да преобразува платформата на проекта в 32-битова? Oracle няма ли компоненти за достъп до данни за NET x64 приложения? - person Junior Mayhé; 01.03.2018

Премахнете препратката към Oracle.DatabaseAccess от вашия проект и я инсталирайте отново от пакета за управление на nuget.

person Explorer    schedule 09.02.2021

Имах същия проблем преди. Зададох стартовия проект (в моя случай конзолно приложение) да предпочита 32-битово квадратче за отметка в раздела за изграждане (Можете да намерите този раздел, като щракнете с десния бутон върху project и изберете properties).

person Praveen Reddy    schedule 15.02.2018