在安装和部署中嵌入SMO dll

时间:2008-11-20 13:26:50

标签: .net deployment installation

我有一个.NET Set and Deployment项目,它必须在安装过程中执行一组非常长的SQL脚本。我已经使用SMO dll来调用.sql脚本文件。然而,这些SMO dll不是.NET框架的一部分,但是它们与SQL Server 2005或2008捆绑在一起。现在,如果设置在一台机器上运行没有安装SQL Server 2005/2008的SQL脚本执行失败。这是我的设置的完全有效的用例,因为用户可能在其本地计算机上但在网络服务器上没有SQL服务器。 我如何将SMO dll与设置.msi一起嵌入,以便它不必依赖于正在运行的机器上的任何SMO dll?

2 个答案:

答案 0 :(得分:0)

一种简单的方法是将这些文件添加到部署项目中。

如果右键单击解决方案资源管理器中的项目,请选择查看>文件系统您可以在目标机器的应用程序文件夹下添加这些文件。

如果您需要注册dll,我认为您可以添加自定义操作来执行此操作,但我不确定。

希望有所帮助!

答案 1 :(得分:0)

对不起,乍一看我不明白这个问题。我会做以下事情:

  1. 创建自定义安装程序项目(类库)
  2. 添加对SMO DLL的引用(我认为您必须设置Copy Local = True)
  3. 使用sql部署逻辑
  4. 为其添加安装程序类
  5. 将此项目的输出添加到您的设置项目
  6. 设置必要的自定义操作
  7. This article解释了一个类似的过程(减去SMO调用),它基于this msdn article

    希望有所帮助!