.net - VS2005配置“fallback” DLL

标签 .net visual-studio sql-server-2008 dll

我正在尝试将SQL2008支持添加到.NET 2.0应用程序。但是,我的独特之处是某些用户仍将使用SQL2005,并且我不想要求他们安装SQL2008客户端组件。

我为SQL2008所需的实际DLL集与SQL2005不同。代码可以保持不变。

Botton行,我需要一种在VS2005中(或手动编辑程序集文件)的方式来表示:

如果用户具有DLL_1 v2,DLL_2 v2和DLL_3 v2,请使用它们。如果不是,请使用DLL_1 v1和DLL_2 v1。

我将研究使用反射来加载DLL,这听起来对我来说是唯一的选择,除了需要SQL 2008 Client Components。

至于重新分发DLL,我确实阅读了许可证。其中有几个适用于我们的可疑术语(例如,针对托管软件)。另外,这是一个更加复杂的问题,因为我们的客户数据非常敏感,因此他们要经过广泛的批准流程才能允许安装任何内容,例如我们包含的DLL。

谢谢您的帮助!

感谢您的想法!但是我们还不在那里...

  • 否,用户不会选择要安装到的数据库版本。目的是即使在同一安装中也允许SQL2005和/或SQL2008。例如,我们有一个管理应用程序,该应用程序允许用户跨不同的SQL服务器管理数据库实例。
  • 我意识到我们可以添加一个对话框来选择是否需要SQL2008支持。但是,这将进一步扩展我们的测试矩阵,这是我们要避免的事情。
  • 我相信我确实需要直接引用DLL。除了连接和查询外,我对数据库所做的工作还很多。

  • 我需要的DLL是:
  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Management.Sdk.Sfc
  • Microsoft.SqlServer.Smo
  • Microsoft.SqlServer.Smo扩展了
  • Microsoft.SqlServer.SqlEnum

  • 还有其他想法,想法吗?

    最佳答案

    通过反射,您可以在运行时动态加载所需的DLL集。因此,您可以检测到可用的内容并进行加载。

    唯一的缺点是使用Reflection会使您的工作更加困难和耗时。

    关于.net - VS2005配置“fallback” DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400743/

    相关文章:

    SQL Server - 如何删除递归行

    c# - 在 C# .NET 3.5 中使用 JSON

    c# - 如何定义跨多个表单使用的默认颜色/字体?

    visual-studio-2010 - 警告错误 2008 不是有效的警告编号

    visual-studio - CosmosDB项目布局

    sql-server - 对所有值进行分组和乘法?

    c# - 如何创建一个自定义属性,如果它返回 false 将重定向到登录,类似于授权属性 - ASP.NET MVC

    .net - .NET3.5的任何 native ZIP/打包

    vb.net - 在 Visual Basic (Visual Studio 2019) 中运行时创建的 ListView 中的索引选择

    sql-server-2008 - 在 SQL Server 中报告错误的正确位置在哪里?