无需安装SQL Server工具

时间:2014-09-16 18:02:23

标签: c# sql-server

我有一个VS 2012 C#应用程序(我继承了),为了正常运行,首先需要安装

  • SQL Server数据工具
  • 客户端工具连接
  • 管理工具

如果没有这些先决条件,应用程序将无法运行。

我在申请中引用了以下内容:

  • Microsoft.SqlServer.Management.Sdk.Sfc
  • Microsoft.SqlServer.ConnectionInfo
  • Microsoft.SqlServer.Smo
  • Microsoft.SqlServer.SmoExtended
  • Microsoft.SqlServer.SqlClrProvider
  • Microsoft.SqlServer.SqlEnum

基本上,应用程序允许对数据库运行SQL语句,它允许用户将所选数据库的备份运行到磁盘(在服务器上)

在不同的点上,应用程序将使用GetSchema列出所有数据库,它将使用ExecuteNonQuery执行SQL,并使用SqlBackup(server)

备份数据库

我已经尝试删除上面的一些引用,但这样做会导致构建错误,所以我的假设是我需要它们。我试图在不安装上述3个SQL Server项目的情况下运行应用程序而没有运气。

我是否有可能以某种方式消除SQL Server数据工具,客户端工具连接和管理工具的安装要求?我可以在项目中包含所有这些内容,以便最终用户不必安装任何其他内容吗?

显然我是新手......

2 个答案:

答案 0 :(得分:4)

只需对这些程序集进行bin-deploy。从他们的磁盘路径(对我来说:"C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.SmoExtended.dll")而不是GAC引用它们。您必须用新的汇编引用替换现有的汇编引用。

答案 1 :(得分:0)

以下是我通常如何处理这种情况,因为我还没有找到任何支持这种情况的NuGet软件包。

  1. 在项目中创建一个名为" References"的文件夹。 (也可以是图书馆或其他东西)
  2. 跟踪上面导入语句所需的DLL,并将它们复制到References文件夹中。
  3. 在Visual Studio中,删除"参考文献"中所有对上述库的引用。项目文件中的部分。
  4. 右键点击项目中的参考部分,然后选择"添加参考..."
  5. 选择"浏览"左侧的选项,然后导航到Reference文件夹和所有DLL。
  6. 点击"确定"并重建。这应该将DLL复制到bin文件夹中进行部署/使用。
  7. 为引用保留单独文件夹而不是将它们复制到bin文件夹的主要原因是,如果清理了解决方案,或者在编译期间很多次,则会刷新bin文件夹。如果你只有它们那么你会失去它们。您通常也不会将bin文件夹提交到源代码管理中,但是您希望确保引用这些特定的DLL以进行源代码控制和编译。