I opened a web application that was usually used in VS 2013 to VS 2017. When I opened it up, it received this error message:
Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format
The .dlls were correct, my web.config pointed to the proper version, but the error continue to display even before hitting my default document page in the Page_Load() method.
It seems the Oracle Data Access Component installation process using the "11.2 Release 3 (11.2.0.2.1) with Xcopy Deployment" version is broken. To fix this you must register the missing assemblies in the GAC. To do this for this specific version run these commands from within an administrator console:
md C:\Windows\assembly\GAC_32\Oracle.DataAccess\4.112.2.0__89b483f429c47342\
copy %ORACLE_HOME%\odp.net\bin\4\Oracle.DataAccess.dll C:\Windows\assembly\GAC_32\Oracle.DataAccess\4.112.2.0__89b483f429c47342\
md C:\Windows\assembly\GAC_32\Oracle.Web\4.112.2.0__89b483f429c47342\
copy %ORACLE_HOME%\asp.net\bin\4\oracle.web.dll C:\Windows\assembly\GAC_32\Oracle.Web\4.112.2.0__89b483f429c47342\
Note that this registers only the DLL's but not other languages resources. So, if you are using any another language than English (de, es, fr, it, ja, ko, pt-BR, zh-CHS, and zh-CHT), then you need to register these as well using the corresponding resource file.
If you have Visual Studio installed on the machine, you can issue the following commands instead:
gacutil /i %ORACLE_HOME%\odp.net\bin\4\Oracle.DataAccess.dll
gacutil /i %ORACLE_HOME%\asp.net\bin\4\oracle.web.dll
Note: look for gacutil.exe under the Visual Studio installation folder for it.
Hope this helps.
P.S. Or you can try this.
Why would I have to do this for VS 2017 compared to it working without doing anything in VS 2013?
Note: look for gacutil.exe under the Visual Studio installation folder for it.
According to the case you provided, in the solution, solve your current problem by installing the missing dll dependency in the VS2017 installation folder.
So I think there is no missing dll dependency in VS2013.
Best regards,
Xudong Peng
.NET forums are moving to a new home on Microsoft Q&A, we encourage you to go to Microsoft Q&A for .NET for posting new questions and get involved today.
Participant
1038 Points
2817 Posts
Data Access error when going from VS 2013 to VS 2017
Jul 13, 2020 01:51 AM|tvb2727|LINK
Hello,
I opened a web application that was usually used in VS 2013 to VS 2017. When I opened it up, it received this error message:
Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format
The .dlls were correct, my web.config pointed to the proper version, but the error continue to display even before hitting my default document page in the Page_Load() method.
I was able to resolve it with this post:
https://stackoverflow.com/questions/15596834/could-not-load-file-or-assembly-oracle-dataaccess-or-one-of-its-dependencies?answertab=votes#tab-top
Why would I have to do this for VS 2017 compared to it working without doing anything in VS 2013?
Any ideas?
Contributor
2110 Points
674 Posts
Re: Data Access error when going from VS 2013 to VS 2017
Jul 14, 2020 07:18 AM|XuDong Peng|LINK
Hi tvb2727,
According to the case you provided, in the solution, solve your current problem by installing the missing dll dependency in the VS2017 installation folder.
So I think there is no missing dll dependency in VS2013.
Best regards,
Xudong Peng