【发布时间】:2018-07-04 02:37:41
【问题描述】:
我有一个使用 SQL Server 2008 Express SP2 开发的 32 位应用程序,因为我们正在迁移到 Windows 10,我们将使用 SQL Server 2016 Express,当我启动应用程序时出现以下错误:
Message:Could not load file or assembly 'Microsoft.SqlServer.ConnectionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.
我通过在我的机器上安装适用于 32 位 2008 的 CLR 类型和 SMO 修复了这些错误。我还在 Visual Studio 中注意到我对 Microsoft.SqlServer.ConnectionInfo、Microsoft.SqlServer.Management.Sdk.Sfc 和 Microsoft.SqlServer.Smo 的引用使用新的 SQL Server 更新了它们的路径(在 2008 SMO 安装之前),但我仍然得到这个错误。
我可以在应用程序中做些什么来避免这个错误?它只是更新参考吗?
【问题讨论】:
-
如果您想使用 Sql Server 2016,为什么要为 2008 安装 SMO?我会安装 2016 年的版本。microsoft.com/en-us/download/details.aspx?id=52676
-
@Steve 项目引用 .dll 的 v10 而 2016 年是 v14
-
@nessa 您需要迁移您的应用程序,而不仅仅是在新操作系统上按原样运行它。特别是 32 位已死 - 您应该编译和运行 64 位应用程序,这些应用程序使用 2016 年的适当库以及使用的 .Net 版本。是的 - 这意味着您可能需要在您的应用程序中重构代码。如果你不这样做,你并没有真正升级你的应用程序。从您遇到的问题中学习 - 向后兼容性存在限制。十年的等待太久了。
-
@SM我同意,我会继续努力的,我想知道是否有办法在同一个应用程序中使用多个版本的 sql server
标签: c# sql-server visual-studio sql-server-2008 sql-server-2016-express