项目属性 ->“包”/“发布 SQL”选项卡

属性 页的 打包/发布 SQL 选项是指定的SQL Server数据库部署设置传统方法。

本主题适用于以下产品:

在配置在 打包/发布 SQL 选项时的数据库发布,因此,只有数据库的初始部署自动并且必须通过创建自定义SQL脚本手动配置数据库更新的增量部署。 在配置在发布配置文件的数据库部署时,增量更新以及初始数据库部署自动进行。 有关更多信息,请参见用于 Visual Studio 和 ASP.NET 的 Web 应用程序项目部署概述

应使用 打包/发布 SQL 选项,才会在传统项目中已经配置了时,或者当无法配置在发布配置文件中的数据库部署。 例如,因此,如果您使用的是Windows XP或Windows Server 2003和您的应用程序不使用entity framework第一个代码迁移,则无法配置在发布配置文件的数据库发布。 在这种情况下,请使用 打包/发布 SQL 选项。

当您在具有数据库在 打包/发布 SQL 选项配置的部署设置的项目中创建发布配置文件,发布 Web 向导显示一条警告消息。

Publish_Web_Settings_tab_with_Package_Publish_

如果要使用在 打包/发布 SQL 选项卡上的设置,不要单击 启用新的数据库发布设置改进。 如果单击 启用新的数据库发布设置改进,发布配置文件设置将优先,并 打包/发布 SQL 设置将被忽略。 (如果单击 启用新的数据库发布设置改进 后期决定要使用 打包/发布 SQL 设置,必须创建一个新的配置文件。)

访问属性页上的该选项卡

  1. 在 Visual Studio 中,打开一个 Web 应用程序项目。

  2. 若要显示**“属性”页,请在“解决方案资源管理器”中右击项目名称,然后选择“属性”(C#) 或“MyProject”**(Visual Basic)。

  3. 单击**“包”/“发布 SQL”**选项卡。

    项目属性的“打包/发布 SQL”选项卡

    如果安装了 发布 Web 向导,属性,并且,如果项目的设置。打包/发布 SQL 选项卡尚未输入,此选项的规则UI发出警告替换不应为新开发使用此选项。 如果必须配置在 打包/发布 SQL 选项的数据库部署,单击显示用户界面的 启用此页 显示在图。

UI 元素

  • 配置
    指定此选项卡上的设置适用于的配置类型。 例如,可以指定调试配置的程序包设置(“调试”),该设置不同于生产配置的设置(“发布”)。 选择一种配置类型时,所指定的设置与该配置类型一起存储。 如果您希望所有配置的设置均相同,请选择**“所有配置”。 可以通过从“生成”菜单中选择“配置管理器”**来创建自定义配置类型。

  • 平台
    指定这些设置适用于的操作系统类型。

  • 数据库项
    指定要部署的数据库列表。 此部分的网格会为要部署的每个数据库包含一项。 通过使用**“数据库项详细信息”**部分可指定所选数据库的设置。

  • **“数据库项”表的“部署”**列
    指定是否应部署所选数据库。 如果希望仅在首次部署 Web 项目时部署数据库,这会很有用。 在这种情况下,首次部署应用程序后,可以清除此复选框,则在重新部署相同项目时,就不会包含数据库。

  • **“数据库项”表的“名称”**列
    指定一个标识您要部署的数据库的名称。 如果数据库由 Web.config 文件中的连接字符串表示,则此值通常为该连接字符串的名称,并带有一个诸如“-Deployment”或“-Web.config”之类的后缀。

    后缀“-Web.config”(例如“ConnectionStringName-Web.config”)指定,应使用 Web.config 文件中的连接字符串值进行部署。 有关更多信息,请参见本文档后面的**“目标数据库的连接字符串”**。

  • 上/下箭头按钮
    允许您指定数据库的部署顺序。

  • 从 Web.config 导入
    在 Web.config 文件中查找连接字符串,并将其名称输入到**“数据库项”**网格中,并将“-Deployment”作为这些名称的后缀。

    您可以将后缀“-Deployment”更改为“-Web.config”(例如,将“ConnectionStringName-Deployment”更改为“ConnectionStringName-Web.config”),以便指定,应使用 Web.config 文件中的连接字符串值进行部署。 有关更多信息,请参见本文档后面的**“目标数据库的连接字符串”**。

  • 添加
    将行添加至**“数据库项”**网格中。

  • 移除
    从**“数据库项”**网格中移除行。

  • 目标数据库的连接字符串
    指定用于在部署过程中连接至目标数据库的连接字符串。

    此连接字符串仅在部署过程中使用,不适用于部署的 Web 应用程序中的 Web.config 文件,但有以下例外。 如果该数据库的 名称 值以“- Web.config连接字符串” (例如,“ConnectionStringName-Web.config连接字符串”),并且,如果附带名称的组成部分,在后缀“- Web.config之前连接字符串”结尾的形式显示在应用程序Web.config文件中的连接字符串名称,适用以下规则:

    • 如果您将此字段保留为空,则将 Web.config 文件中的连接字符串值用于部署。 如果为连接字符串指定转换,则将转换后的连接字符串用于部署。

    • 如果在此字段中输入一个值,则将所输入的值用于部署,并更新目标 Web.config 文件,以包含该值。

      备注

      如果您指定终止以“-的数据库名称Web.config连接字符串”并为相同的连接字符串指定一个转换,不使用。将在此字段中输入的值用在目标 Web.config 文件中。

  • 从现有数据库中提取数据和/或架构
    指定部署过程是否应生成包括命令的脚本(.sql 文件),这些命令可在源数据库中重新创建源数据库架构和数据(后者可选)。

  • 源数据库的连接字符串
    指定要用于源数据库的连接字符串。

  • 数据库脚本选项
    指定是应仅将数据库架构或仅将数据部署到目标数据库中,还是应同时将它们都部署到目标数据库中。

    用于部署架构的生成脚本包括完整的数据库架构。 没有用于自动生成仅反映初始部署之后的架构更改的脚本的选项。 这一点也适用于数据。 用于部署数据的生成脚本包括数据库中的所有数据。 没有用于自动生成仅反映初始部署之后对数据所做的更改的脚本的选项。

    默认情况下,如果脚本在部署过程中运行,则这些脚本在事务中运行。

  • **“数据库脚本”**表
    将在目标数据库中运行的脚本指定为部署过程的一部分。

    默认情况下,在此处添加的自定义脚本不会在事务中自动运行。 如果希望在事务中运行这些脚本,请在脚本本身中指定这一点。 有关如何设置脚本的 Transacted 属性的信息,请参见 如何:编辑在项目文件的部署设置

  • **“数据库脚本”表的“包括”
    指定在
    “脚本路径”**列中指示的脚本是否应在部署 Web 项目时运行。 如果仅希望在首次部署某个项目时运行某些脚本,这会很有用。

  • **“数据库脚本”表的“脚本路径”**列
    指定必须在目标数据库中运行的某个脚本的路径,以便部署架构更改或数据。 (在自动生成脚本的情况下,没有脚本的路径。 相反,会显示脚本的描述。)

  • 上/下箭头按钮
    允许您指定在部署过程中脚本的运行顺序。

  • 添加脚本
    允许您添加自定义脚本。 SQL 脚本和 SqlCmd 脚本均受支持。 会扫描自定义脚本中的 SqlCmd 变量,并会将这些变量自动转换为 IIS Web 部署工具 中的安装时参数。 有关 SqlCmd 脚本的更多信息,请参见 sqlcmd Utility(sqlcmd 实用工具)。

  • 移除脚本
    允许您移除脚本。

  • 数据库部署说明
    提供一个位置,以便您输入任意形式的部署说明。 不会将此文本用于任何自动函数。

请参见

概念

用于 Visual Studio 和 ASP.NET 的 Web 部署内容映射