【问题标题】:Embedding SMO dlls in Setup and deployment在设置和部署中嵌入 SMO dll
【发布时间】:2008-11-20 13:26:50
【问题描述】:

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

【问题讨论】:

    标签: .net deployment installation


    【解决方案1】:

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

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

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

    希望有帮助!

    【讨论】:

    • 感谢您的回复扎卡里。但问题是我想使用 msi 本身的 CustomInstaller 类中的 SMO dll。将 dll 复制到应用程序根目录仍然无法为 Custominstaller 类提供所需的引用。
    【解决方案2】:

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

    1. 创建自定义安装程序项目(类库)
    2. 添加对 SMO DLL 的引用(我认为您必须设置 Copy Local = True)
    3. 使用您的 sql 部署逻辑向其中添加安装程序类
    4. 将此项目的输出添加到您的设置项目中
    5. 设置必要的自定义操作

    This article 解释了一个类似的过程(减去 SMO 调用),它基于 this msdn article

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多