LoginSignup
4
3

More than 1 year has passed since last update.

今回はOracleDBのアンマネージ・ドライバを利用した開発の中で遭遇した事象についてのお話です。

Problem

OracleDBのODP.NETドライバのアセンブリをグローバル・キャッシュ・アセンブリ(GAC)にインストールするには、アセンブリに付属するコマンド OraProvCfg.exe を利用します:

image.png

コマンドプロンプトを「管理者として実行」して次のようなコマンドを実行します:

> oraprovcfg /action:gac /providerpath:Oracle.DataAccess.dll
INFO: oracle.dataaccess.dll is registered successfully in GAC.

これによりHACにアセンブリが登録されます:

image.png

では削除はどうでしょう?
公式に案内されているコマンドは次の通り(これも管理者として実行):

> oraprovcfg /action:ungac /providerpath:Oracle.DataAccess.dll
INFO: oracle.dataaccess.dll is un-registered successfully from GAC.

出力メッセージは「GACからの登録解除に成功した」とのことで、結果は・・・

image.png

消えません。
環境によるのでしょう。私の環境ではGACからアセンブリが削除できませんでした。

Solution

Visual Studioに付属する gacutil.exe (グローバル・アセンブリ・キャッシュ・ツール)を利用します。
開発者コマンドプロンプトを「管理者として実行」します:

image.png

次のようにコマンドを実行します:

gacutil /u Oracle.DataAccess
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.0
Copyright (c) Microsoft Corporation.  All rights reserved.


アセンブリ: Oracle.DataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
アンインストール済み: Oracle.DataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342, processorArchitecture=AMD64
アンインストールされたアセンブリの数 = 1
エラーの数 = 0

すると、消えました。

image.png

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3