My C#.Net Windows Project では、vb6 COM dll (この COM dll は、すべての開発マシンとクライアント マシンに既にインストールされている SDK の一部です) を参照してから、installshield を使用してクライアント マシンのセットアップ/インストーラーを作成しました。
- 開発マシン:VS2012、Win7 Ultimate 64Bit、.Net 4.0.3。(プロジェクトは任意の CPU をビルドします / 32 ビットを好みます)。
- クライアント マシン 1 & 2 : クライアント 1 .net v4.0.3、Win7 Ultimate (32 ビット) および client2 .net v4.0.3、Win7 Ultimate (64 ビット)。
vb6 COM dll は .Net 2.0 でコンパイルされます (したがって、私のプロジェクトは下位互換性があるはずです)
プロジェクトは開発マシンでは正常に動作 (ビルドとインストール) しますが、クライアント マシンで実行しようとすると、次のエラーが発生します。
問題の署名: 問題イベント名: CLR20r3 問題の署名 01: MyProject tool.exe 問題の署名 02: 1.0.3.0 問題の署名 03: 5252b033 問題の署名 04: MyProject ツール 問題の署名 05: 1.0.3.0 問題の署名 06: 5252b033 問題の署名 07:8 問題の署名 08: b 問題の署名 09: System.InvalidCastException OS バージョン: 6.1.7601.2.1.0.256.48 ロケール ID: 2057 追加情報 1: 0a9e 追加情報 2: 0a9e372d3b4ad19135b953a78882e789 追加情報 3: 0a9e 追加情報 4: 0a9e372d3b4ad19135b953a78882e789 プライバシーに関する声明をオンラインで読む: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409 オンラインのプライバシーに関する声明が利用できない場合は、オフラインでプライバシーに関する声明をお読みください。 C:\Windows\system32\en-US\erofflps.txt
すでに試したこと : - 最初は、このエラーは vb6 COM dll の CLR バージョンの不一致が原因であると考えていました。だから、私は.netの.net 2.0、3,4、4.5バージョンでc#.netプロジェクトをコンパイルしようとしました(NO Show - 同じエラー)。-次に、同じマシンにVS2010をインストールし(最初はvs2012を両方とも同じ開発マシンで使用していました)、もう一度やり直しました(表示なし-同じエラー)。-次に、参照のみを使用してvb6 COM dllを使用して新しい空のプロジェクトを作成し、クライアントマシンにインストールしました。c#.net プロジェクトで vb6 COM dll からクラスのインスタンスを作成したときに問題が発生しました。また、COM クラスのインスタンスを作成したときに、VS2012 のインターフェイス (alt バナー ウィンドウ。クラス名にマウスを移動すると小さなポップアップ) と表示されていることに気付きました。しかし、これも開発マシンで動作するため、インターフェースの問題にはなりません。
- Visual Basic / C#の問題かもしれないと思いました。次に、vb.net でプロジェクト全体を再作成しました。次のエラーが発生しました。ビルド中に開発マシンでこのエラーが発生しました (クライアントではこれ以上進むことができませんでした)。
次のエラーが原因で、CLSID {8F9F6324-E4E2-435A-AB66-7B766CE628AC} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 80040154 クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))。
次に、すべてのマシンのレジストリ/CLSID 登録を調べたところ、COM は既に登録されています。
- 次に、上記のすべてのブロック テストを別の開発マシンで再作成しましたが、同じエラーは表示されません。
また、stackoverflow フォーラムで提案された多くのソリューションも試しました。msenv dll の登録解除と再登録のように。クライアントと開発マシンで.netフレームワークをアンインストールして再インストールしてみました。
現在3週間経ちました。この段階で私にできることはありますか?