2011-12-05 10 views
0

私はこれを使って広範なテストを行い、この問題を解決しました。私はこれを要点にとどめようとしていますが、他の情報が残っていると尋ねてください。dllを同じdllで置き換えると問題は解決しますが、なぜですか?

-a.exe is our vb6 app that references x.dll 
-x.dll is an in house vb6 dll that references y.dll 
-y.dll is an in house .net interop dll 

-Everything works fine on the development machines. 
-I have more than triple checked our .net setup project to ensure files are being pulled from the correct places. 

インストールすると、y.dllへx.dllからの呼び出しが失敗しました。最終的に私がこれを解決する方法は、ターゲットマシンのセットアッププロジェクトによってインストールされたx.dllファイルを介して開発マシンからx.dllをコピーすることです。これらの2つは同一でなければなりません。

誰でもこれが何であるかの手掛かりはありますか?それは...私は、問題を修正しますが、私は問題があった理由はまだ完全に理解していないが、ここで私が見つけたものだ、かなり

私は私が今まで持っていたと思う奇妙なdllの問題:(

+0

セットアップスクリプトのアクセス権に問題がありますか?どのような悪いdllのv.sのアクセス許可です。良いコピー? –

+0

2つのファイルをバイナリ比較して確認してください... winmergeを使って確認するか、md5ファイルのハッシュツールを使って確認してください。 –

答えて

0

ですVb6は、最近登録されたものを参照しているdllを常に変更しようとしています.DllをC:\にありソースコードフォルダ内にないアプリケーションディレクトリに登録していましたが、そこから参照して、インストールパッケージのディレクトリ。

私たちがSubversionに切り替えると、dllをブランチ内の依存フォルダに移動しましたが、dllファイルは引き続きコピーされ、アプリケーションのディレクトリだけでなく、どこからビルドするかを指定します。新しい支店の場所からdllを取得し、古い場所にコピーされないようにビルドを更新する必要がありました。

これは問題を修正したようですが、私は両方の場所でのdllの比較が同じであることを示したため、なぜその理由が完全にわかりません。

関連する問題