На девелоперской машине стоит VS2010 и Oracle Developer Tools. На тестовой только .net framework.
Библиотека Oracle.DataAccess.dll из ODT добавлена в референсы и копируется вместе со скомпилированным приложением на тестовую машину. Если библиотеку не копировать, происходит ожидаемый эксепшен:
System.IO.FileLoadException: Could not load file or assembl<br/>
y 'Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f<br/>
429c47342' or one of its dependencies. The located assembly's manifest definitio<br/>
n does not match the assembly reference. (Exception from HRESULT: 0x80131040)<br/>
at ConsoleApplication1.Program.Main(String[] args)
Но при копировании Oracle.DataAccess.dll в папку с приложением происходит другая ошибка:
System.TypeInitializationException: The type initializer fo<br/>
r 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.Da<br/>
taAccess.Client.OracleException: The provider is not compatible with the version<br/>
of Oracle client<br/>
at Oracle.DataAccess.Client.OracleInit.Initialize()<br/>
at Oracle.DataAccess.Client.OracleConnection..cctor()<br/>
--- End of inner exception stack trace ---<br/>
at Oracle.DataAccess.Client.OracleConnection..ctor()<br/>
at Test.Program.Main(String[] args)
Да, если установить на клиентскую машину Oracle client из ODT, то всё работает, но не хотелось бы увеличивать размер дистрибутива на ~300Mb.
Как можно решить проблему без установки дополнительного софта?