2

Office2010 64Bit を搭載した 64Bit マシンで DLL をビルドしましたが、その DLL を 32Bit (xp/office2003) マシンで使用すると、このエラーが発生します。

Could not load file or assembly 'Microsoft.Vbe.Interop, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

プロジェクトで VBIDE を参照しています。プロジェクトがビルドされている PC にインストールされているオフィスのバージョンに基づいているようです。Vbe.Interop のバージョンは dll に記録されます。これを回避するにはどうすればよいですか-つまり、環境に依存しないビルド..

前もって感謝します..

4

1 に答える 1

1

除外: ---必要なアセンブリをどこかからコピーした可能性があります。ただし、.NET アセンブリ Microsoft.Vbe.Interop には、他の (ネイティブ) DLL が存在する必要があります。これらはおそらくシステムに存在しません。

これを修正するには、Microsoft Office のバージョンをインストールする必要があると思います.----

読み込まれるもの、および Fusion ローダーが検索する (ネイティブ) DLL のトラブルシューティングを行うには、レジストリで Fusion のログ記録をオンにします。

次の値を追加します

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

追加:

 DWORD ForceLog set value to 1
 DWORD LogFailures set value to 1
 DWORD LogResourceBinds set value to 1
 String LogPath set value to folder for logs e.g. C:\FusionLog\

このフォルダは存在し、バックスラッシュで終わる必要があります

( .NET でアセンブリ バインド エラー ログ (Fusion) を有効にする方法からコピーされた手順)

于 2012-10-10T23:45:53.883 に答える