0

どこにも答えが見つからず、これが私のお気に入りのオンラインプログラミングリファレンスであるため、私はこれに自分で答えています。それが他の誰かに役立つことを願っています。

サードパーティの COM コンポーネントを使用する WinForms アプリケーションを管理しています。最近、いくつかの追加のプロパティ/機能を備えた新しいバージョンのコンポーネントにアップグレードしました (古いプロパティはすべてそのままです) が、Visual Studio で新しいプロパティを検出できませんでした。コンポーネントの古いバージョンへの参照にぶら下がっているように振る舞いました。これをクリアするために私が取った手順は次のとおりです。

  • コンポーネントを使用していたフォームを削除しました (最初にコードをコピーしました)。このフォームの唯一のコントロールは、サード パーティ コンポーネントでした。
  • 古いコンポーネントへの参照を削除しました
  • 新しいコントロールを追加したときにPIAが新しく作成されるように、ソリューションディレクトリのbinフォルダーとobjフォルダーを削除しました
  • 古いコンポーネントをアンインストールし、新しいコンポーネントをインストールしました
  • ソリューションを開き、新しいコンポーネントへの参照を追加しました
  • アプリケーションにフォームを追加し、コンポーネントをフォームにドロップして、古いコントロールと同じ名前を付けました (アプリケーションの残りの部分をリファクタリングする必要がないように)
  • フォームコードを元の場所に貼り付けました

その時点で、アプリケーションはコンパイルおよび実行されますが、Intellisense で新しいプロパティを検出することはできませんでした。また、それらを適切な場所に配置しても、アプリケーションはコンパイルされませんでした。私が試したものは、新しいプロパティを表示するものではありませんでした。

4

1 に答える 1

1

アプリケーションを展開するときに、コンポーネントの PIA を GAC にインストールします。ある時点で PC でアプリケーションのインストーラーを実行した結果、GAC に PIA のコピーがありました。これは、コンパイル時に Visual Studio が使用していたものです。GAC から削除し、PIA を再作成すると、新しいプロパティが表示されるようになりました。

于 2012-05-15T14:31:49.517 に答える