Я пытался развернуть консольное приложение ac #, которое я сделал на сервере.Я в основном копировал содержимое папки Release на сервер, и все, кажется, работает гладко, за исключением Oracle.На моей машине для разработки (32-битная XP) у меня OracleClient 11.2, а на сервере (64-битный сервер 2008) 11.1.Приложение работает, если я запускаю его на локальном компьютере.
Когда я выполняю развертывание, просто копируя папку Release и пытаясь запустить приложение, я получаю следующую ошибку:
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Oracle.DataAccess, Version=2.111.7.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.
File name: 'Oracle.DataAccess, Version=2.111.7.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
at PDV.AODGateway.StoredProcedures..ctor()
at PDV.AODGateway.AODGateway.Export()
at PDV.AODGateway.AODGateway.Main(String[] args)
(не читайте слишком много в поисках версии 111.7. Это говорит о том, что я попытался указать в app.config поиск этой версии. Ранее сообщалось, что не удалось найти 112.1)
Разделкод, в котором происходит сбой, - это место, где я создаю объект OracleConnection.
Если я пытаюсь скопировать dll в папку развертывания с сервера, я получаю похожую ошибку:
Unhandled Exception: System.TypeInitializationException: The type initializer for 'PDV.AODGateway.StoredProcedures' threw an exception. ---> System.BadImageFormatException: Could not load file or assembly 'Oracle.DataAccess, Version=2.111.7.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format.
File name: 'Oracle.DataAccess, Version=2.111.7.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
at PDV.AODGateway.StoredProcedures..cctor()
Iв конечном итоге решили проблему, скопировав эти файлы из папки oracleclient на моем компьютере разработчика (то есть на компьютере, который я использовал для построения решения) в каталог приложения на сервере:
Oracle.DataAccess.dll
oci.dll
OraOps11w.dll
oraociei11.dll
Однако этоКажется, это очень плохая практика, так есть ли у кого-нибудь из вас предложения о том, как мне это сделать?Кто-нибудь из вас сталкивался с этой проблемой раньше?