ODP 11 xcopy展開を使用し、PATHを変更しないことは可能ですか?

StackOverflow https://stackoverflow.com/questions/338875

  •  19-08-2019
  •  | 
  •  

質問

Oracle.DataAccessを使用して接続するアプリケーションがあります。 xcopy展開でODAC 11を使用すると、フットプリントを減らすことができることを既に発見しました。それはすでに大きな勝利です。

ただし、理想的には、パス変数を変更したり、すべてのODACファイルをアプリケーションのフォルダーの下のサブディレクトリに入れたりする必要はありません。 PATH変数を変更せずにこれを行うことは可能ですか?一時的なPATH変数を設定する方法はありますか?必要なすべてのファイルをアプリケーションフォルダーにコピーできますか?

一般的な考え方は、同じクライアントで実行されている可能性のある他のアプリケーションから可能な限りODACファイルを分離することです。

役に立ちましたか?

解決

System.Environment.SetEnvironmentVariable を使用すると、プロセスを変更できます。環境ブロック。悪名高いPITA Oracleにそれだけで十分かどうかは、誰でも推測できます。 ;)

他のヒント

As マーク 推奨を使用すると、常に現在のプロセスの環境変数をアプリケーションで変更できます。明らかに、ODP .NET呼び出しが行われる前にそれを行う必要があることに注意してください。

また、純粋なODP .NET機能のみが必要な場合は、特に必要ないことにも注意してください:

この場合、配布できるのは Oracle Instant Client とアプリケーション。 この質問詳細については。

Environment変数の変更は甘いハックですが、学術的な完全性のためだけに埋め込みアセンブリの解決は、実際には、より多くのコードであっても、この問題を解決するための「適切な」方法です。

はい、できます。 http: //ora-00001.blogspot.com/2010/01/odpnet-minimal-non-intrusive-install.html で詳細を確認してください。

前述のように、 this StackOverflowの質問では、目標を達成する方法について説明しています。 このの答えはとても良いです。インスタントクライアントLite DLLとOracle.DataAccess.dllをプロダクションのアプリケーションフォルダーにコピーするだけで、Easy Connect接続文字列を使用し、プロダクションマシンと開発マシンで同じバイナリを使用することができたという回答にコメントしました。機械。開発マシンには、完全なOracleクライアントがインストールされています。この方法では、パスステートメントをまったく変更する必要はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top