1

SQLCE3.5と.NET3.5のEntityFrameworkを利用するアプリケーションがあります。

SQL CE 3.5 SP2 RTMで既知の問題が発生し、アプリケーションがクラッシュしました。その結果、この問題に対処していると思われるCummulativeUpdate2を入手しました。

アプリケーションでXCopyを介してSQLCEを展開したため、ローカルのマネージドDLLとアンマネージドDLLをCU2バージョンに置き換えるだけでうまくいくと想定しました。

SQL CEが事前にマシンにインストールされている(したがってGACにある)場合、アプリケーションは新しいバージョンのアセンブリとDLLを無視し、古い壊れたバージョンをGACからロードします。

SQL CEをアンインストールする(したがってGACから削除する)か、GACのアセンブリを更新すると、アプリケーションで正しいバージョンを使用できるようになると判断しました。

もっと良い方法はありますか?Assembly.LoadFileを試しましたが、うまくいかなかったようです。(両方のバージョンがロードされましたが、実際に使用されていたのは古いバージョンでした。)

4

1 に答える 1

0

SQL CEアセンブリの特定のバージョンを対象としていますか?[プロパティ]タブで、参照の[特定のバージョン]プロパティが[ True ]に設定されていることを確認します。また、古いアセンブリを使用するように.NetFrameworkに指示するアセンブリバインディングリダイレクトがないことも確認してください。

Cummulative Update 2がバージョン番号をインクリメントしたと想定することしかできません。その場合、GACのアセンブリは、アセンブリのバージョンが完全に一致する場合にのみ使用する必要があります。それらが一致しない場合、.Net Frameworkは、バージョン番号と完全に一致するため、アプリケーションディレクトリにあるアセンブリを使用する必要があります。

于 2011-04-07T23:19:44.833 に答える