0

私は何年も前にVB6で書かれた古いアプリケーションのメンテナンスを少し行っています。ある時点で、実質的に変更なしでVB.NETに移行されました。彼らがそれをどのように、またはなぜ管理したのかはわかりません。

ソース管理のプロジェクトには、警告「 」への参照Interop.MSHierarchicalFlexGridLibと警告が含まれています。プロジェクトには10​​2を超えるエラーが含まれていました(Visual Studio 2008を初めて使用する場合は、エラーリストに表示されるエラーの最大数です)。AXInterop.MSHierarchicalFlexGridLib<The system cannot find the reference specified>

これらの2つの壊れた参照を削除し、Microsoft Hierarchical Flex Grid6.0COMコントロールへの参照を追加しました。これにより、へのすべての参照が修正されMSHierarchicalFlexGridLib.MSHFlexGrid、エラーの数が64に減少しました。残りのエラーは、AxMSHierarchicalFlexGridLib名前空間への未解決の参照の結果であり、ほとんどがDesignerコードでのみ発生します。最初は、これはちょっとしたトリッキー(名前空間の名前変更)かもしれないと思いましImportたが、コントロールの名前にも「Ax」(AxMSHierarchicalFlexGridLib.AxMSHFlexGrid)というプレフィックスが付いています。「Ax」は単に「ActiveX」の略で、まったく同じコントロールを指していると思いますが、主にDesignerコードで60以上の参照を変更する前に、もう少し学びたいと思います。私のGoogle-fuはこれまで私に失敗しました。

質問:

  • AxMSHierarchicalFlexGridLib.AxMSHFlexGridと同じ ですかMSHierarchicalFlexGridLib.MSHFlexGrid

  • 同じ場合、Designerが名前を変更したのはなぜですか。名前空間へのすべての参照を簡単に見つけて置き換えても安全ですか?(また、2番目の参照はAXInterop.MSHierarchicalFlexGridLibどこから来たのですか?)

  • 同じでない場合、欠落しているCOMコントロールの名前は何ですか?

別のボーナス質問:

ソース管理のプロジェクトには、COMオブジェクトではなく、相互運用機能への参照のみが含まれているようです。自分が何をしているのかわからなかった人が、なんとか「うまくいった」ものに出くわしたと信じていますが、万が一に備えて... Visual Studioの多くの自動化されたウィザード、ツールなどが持つ可能性のある方法はありますか関与しましたか?このシナリオが繰り返されないようにしたいと思います。

ありがとう

PSこのプロジェクトを最初から書き直すだけですが、frmMainコードファイル(「クラス」とは言いません)だけでも17,000行近く含まれているため、作業にかかる時間は許可されている時間よりも長くなります。

4

1 に答える 1

2

コメントしたように、名前が AxInterop で始まるアセンブリは、通常、Aximp.exe ツールによって自動生成されます。これは、Winform の AxHost クラスから派生したコントロールを作成し、フォームへの ActiveX コントロールのドロップをサポートします。

VB6 コントロールである MSHFlexGrid の古さを考えると、おそらく DLL をソース管理にチェックインして、二度と失わないようにする必要があります。

于 2012-08-28T19:37:33.130 に答える