Oracleデータベースと通信する.NETアプリケーションを展開できるようにするために必要な最小限の設定は何ですか?
ジョシュ
お時間を割いていただき、誠にありがとうございます。あなたの指示は大いに役立ちました、そして私が自分で見つけたものに非常に近いです。
興味深いことに、もう少しスリム化できることを発見しました。
私の状況の人のために
私はそれをする方法を見つけました。
a。 「Oracle Instant Client 11.1.0.6-Basic Lite」をダウンロードしてください。 b。任意のフォルダーに解凍し、次のファイルをVisual Studioプロジェクトルートにコピーします。
msvcr71.dll(必須ではありません。ほとんどのWindowsバージョンで提供されます)
(最初の5つはOracle Instant Clientに最低限必要なものであり、最後の5つは、それらが使用するMicrosoft共通ランタイムです。)
c。 ODAC 11 XCopy(現在のバージョンは11.1.0.6)をダウンロードして解凍します。
OraOps11w.dll-odp.net20フォルダーのプロジェクトルートに移動します。
(このファイルは、Oracle.DataAccess.dllが対話し、インスタントクライアントファイルを操作するために使用するファイルです)。
d。 ClickOnce配置との互換性を保つために、プロジェクトでこれらのファイルを選択し、それらがプロジェクトの「コンテンツ」および「ローカルにコピー」であることを確認してください。マニフェストはそれらを適切に展開します。
結果..。プロジェクトに追加されたペイロードは30MBです。これはひどいですが、100 +または400+よりはるかに優れており、西洋のキャラクターをサポートしますが、その中でお尻を蹴ります
Zipファイルを抽出して、以下を実行します。
install.bat odp.net20 c:\ Oracle\11.1\odac myoraclehome true
11.1ディレクトリからファイルをコピーし、アプリケーションの実行可能ファイル(例:debug\bin\Oracle)のサブディレクトリに配置します。
Main()メソッドに次のステートメントを追加します。アプリケーションの実行可能ファイルが他のOracleホーム以外のOracleクライアントを使用するようにパスを変更します。環境の変更はプロセスに限定され、アプリケーションが終了しても永続的な影響はありません。
Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\Oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\Oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);
Environment.SetEnvironmentVariable("Oracle_HOME", Environment.CurrentDirectory + "\\Oracle\\11.1\\odac", EnvironmentVariableTarget.Process);
しばらく前、これは私のプログラムを動作させたスレッドです(ありがとう!)。私は、Oracleが6つのDLLを選択して実行可能フォルダーにドロップするのを嫌うと言われました。そのため、今、install.bat odp.net2 c:\ Oracle odacを実行するときにインストールされるすべてのdllは、実行可能フォルダーに配置する必要があります(スペースを消費します)
Oracleインスタントクライアント11gで実行しています。次の最小限のファイルのリストは、展開に必要だとわかったものです。
OCI.dll
Oracle.DataAccess.dll
OraOCIEI11.dll
OraOps11w.dll
完全なクライアントをインストールし、それらのファイルをbinフォルダーからコピーするだけです。