1

我有一个使用 SQL CE 3.5 和 .NET 3.5 的实体框架的应用程序。

我们遇到了导致应用程序崩溃的 SQL CE 3.5 SP2 RTM 的已知问题。结果,我们获得了明显解决该问题的累积更新 2。

由于我们通过 XCopy 将 SQL CE 部署到我们的应用程序中,因此我们假设简单地用 CU2 版本替换本地托管和非托管 DLL 就可以解决问题。

如果 SQL CE 已提前安装在机器上(因此在 GAC 中),我们的应用程序会忽略较新版本的程序集和 DLL,并从 GAC 加载旧的、损坏的版本。

我们确定卸载 SQL CE(因此将其从 GAC 中删除)或更新 GAC 的程序集允许我们的应用程序使用正确的版本。

有没有更好的办法?我已经尝试过 Assembly.LoadFile,但这似乎不起作用。(两个版本都已加载,但旧版本是实际使用的版本。)

4

1 回答 1

0

您是否针对特定版本的 SQL CE 程序集?在属性选项卡中,检查引用的特定版本属性是否设置为True。还要检查您是否没有指示 .Net 框架使用旧程序集的程序集绑定重定向。

我只能假设累积更新 2 增加了版本号,如果是这种情况,则只有在程序集版本完全匹配时才应使用 GAC 中的程序集。如果它们不匹配,那么 .Net 框架应该使用在您的应用程序目录中找到的程序集,因为它们确实与版本号完全匹配。

于 2011-04-07T23:19:44.833 回答