0

Visual Studio 2010 で展開プロジェクトを作成しました。MATLAB コンポーネントと .NET コンポーネントをリンクしています。MY MATLAB は 64 ビットで、Visual Studio も 64 ビットですが、一部のリファレンスは 32 ビットです。

展開プロジェクトをコンパイルすると、「同じ依存アセンブリの異なるバージョン間で競合が見つかりました」という警告が表示されます。

すべてを試し、プロセッサを 64 ビットに設定しました。しかし、それでも警告が表示されます。

4

2 に答える 2

1

これは、アセンブリ A ver. を参照することを意味します。プロジェクト 1 の xxx とアセンブリ A ver. プロジェクト 2 の yyy。

問題は、プロジェクト 1 からプロジェクト 2 を参照することもできるため、参照されたアセンブリが実行時に読み込まれるときに両方の A が競合する可能性があることです。

于 2013-05-27T08:41:51.573 に答える
0

これがまだあなたに役立つかどうかはわかりません!サードパーティ企業が提供するいくつかのモジュールでこの問題に直面したばかりで、この問題についてグーグルを開始しました!

他の多くの人が示唆しているように、モジュール/dllの一部が別のコアモジュールのver.Aを使用し、他の一部がver.Bを使用していることを意味します。私の場合、すべてのモジュールは MODULE_A_VER_X.(signature XXXXXXXXXXXXXXXX) を探し、1 つはまったく同じバージョンでまったく同じモジュールを探しますが、異なる署名を持ちます [例: MODULE_A_VER_X.(signature YYYYYYYYYYYYYYYYYYYYYYYYYY)]

インストーラー プロジェクトで、[検出された依存関係] をそれぞれ右クリックし、プロパティ ウィンドウで [依存関係] 項目をクリックします。特定のモジュールが依存しているコアモジュールが表示されます!

そうすることで(すべての依存関係について)、不足している/競合しているコアモジュールを特定し、正しい軌道に乗せるのに役立ちます。

その後、MATLAB に連絡して、正しいバージョンと署名付きのコア モジュールを提供するよう依頼することができます。または、自分で見つけてみることもできます。

次に、そのモジュールをインストーラー プロジェクトに追加してみて、動作するかどうかを確認してください。(私の場合、サードパーティのプロバイダーは私の問題を解決すると言いましたが、そうではありませんでした!おそらくあなたにとってはうまくいくでしょう!)

WIX などの VS インストーラー以外のパッケージを使用してインストーラーを作成することもできます。

于 2013-12-09T23:49:18.260 に答える