Очевидно, я бы не хотел устанавливать клиент Oracle (кроме просто DLL), потому что это запретило бы мою цель ClickOnce. Я попробовал System.Data.OracleClient, но он выдал исключение: «System.Data.OracleClient требует клиентского программного обеспечения Oracle версии 8.1.7 или более поздней».
Обновление:
Кажется, что System.Data.OracleClient - это не тот путь. Поэтому я скачал версию поставщика ODP.NET для Oracle с поддержкой xcopy. Затем я запустил «install.bat odp.net20 c: \ oracle odac», чтобы установить только ODP.NET. Затем я добавил ссылку в свой проект в C: \ oracle \ odp.net \ bin \ 2.x \ Oracle.DataAccess.dll. Это позволило мне попасть в БД Oracle. Но когда я беру все свои файлы на чистую машину (включая oracle DLL), я получаю исключение: «инициализатор типа для Oracle.DataAccess.Client.OracleConnection вызвал исключение» Так что кажется, что это все еще зависит от некоторых других файлов. Но я не знаю, какие файлы. И как он узнает, где находятся файлы? Запись в реестре? Не выглядит хорошим для ClickOnce.
Обновление:
Это работает, пока я включаю файлы, упомянутые mcauthorn: oci.dll, oracle.dataaccess.dll, oraociei11.dll и oraops11w.dll. К сожалению, oraociei11.dll очень большой - 114 МБ.