使用 Visual Studio 部署站点 (VB)

作者 :Scott Mitchell

下载 PDF

Visual Studio 包括用于部署网站的工具。 在本教程中详细了解这些工具。

简介

前面的教程介绍了如何将简单的 ASP.NET Web 应用程序部署到 Web 主机提供程序。 具体而言,本教程演示了如何使用 FTP 客户端(如 FileZilla)将所需的文件从开发环境传输到生产环境。 Visual Studio 还提供内置工具,以便于部署到 Web 主机提供程序。 本教程介绍其中两个工具:“复制网站”工具,可在其中使用 FTP 或 FrontPage 服务器扩展将文件移向远程 Web 服务器或从远程 Web 服务器移动;和“发布”工具,用于将整个网站复制到指定位置。

注意

Visual Studio 提供的另一个与部署相关的工具是 Web 安装项目 外接程序。 Web 设置项目将网站的内容和配置信息打包到单个 MSI 文件中。 对于在 Intranet 中部署的网站或销售客户在其自己的 Web 服务器上安装的预打包 Web 应用程序的公司,此选项最有用。 Web 部署项目 Add-In 是一种 Visual Studio Add-In,它有助于指定开发环境和生产环境内部版本之间的配置差异。 本教程系列中未讨论 Web 安装项目; 开发与生产之间的常见配置差异 教程中汇总了 Web 部署项目。

使用复制网站工具部署网站

Visual Studio 的复制网站工具在功能上类似于独立的 FTP 客户端。 简而言之,“复制网站”工具允许你通过 FTP 或 FrontPage 服务器扩展连接到远程网站。 与 FileZilla 的用户界面类似,“复制网站”用户界面由两个窗格组成:左窗格列出本地文件,右窗格列出目标服务器上的这些文件。

注意

“复制网站”工具仅适用于网站项目。 使用 Web 应用程序项目时,Visual Studio 会提供此工具。

让我们看看如何使用复制网站工具将书评应用程序发布到生产环境。 由于“复制网站”工具仅适用于使用网站项目模型的项目,因此只能检查将此工具与 BookReviewsWSP 项目配合使用。 打开该项目。

单击“复制网站”中的“复制网站”图标启动“复制网站”工具项目,解决方案资源管理器 (此图标在图 1) 中圆圈;或者,可以从“网站”菜单中选择“复制网站”选项。 任一方法都启动“复制网站”用户界面,如图 1 所示;仅填充图 1 中的左窗格,因为我们尚未连接到远程服务器。

复制网站工具的用户界面分为两个窗格

图 1:复制网站工具的用户界面分为两个窗格 (单击以查看全尺寸图像)

若要部署站点,需要首先连接到 Web 主机提供程序。 单击“复制网站”用户界面顶部的“连接”按钮。 此时会显示“打开网站”对话框,如图 2 所示。

可以通过从左侧选择四个选项之一连接到目标网站:

  • 文件系统 - 选择此选项以将站点部署到可从计算机访问的文件夹或网络共享。
  • 本地 IIS - 使用此选项将站点部署到计算机上安装的 IIS Web 服务器。
  • FTP 站点 - 使用 FTP 连接到远程网站。
  • 远程站点 - 使用 FrontPage 服务器扩展连接到远程网站。

大多数 Web 主机提供程序支持 FTP,但提供 FrontPage 服务器扩展支持的提供商较少。 出于此原因,我选择了“FTP 站点”选项,然后输入了连接信息,如图 2 所示。

“打开网站”对话框的屏幕截图,其中显示连接信息已填充到文本字段中。

图 2:指定目标网站 (单击以查看全尺寸图像)

连接后,“复制网站”工具会在右窗格中加载远程站点上的文件,并指示每个文件的状态:“新建”、“已删除”、“已更改”或“未更改”。 可以将文件从本地站点复制到远程站点,反之亦然。

让我们向 BookReviewsWSP 项目添加新页面,然后对其进行部署,以便我们可以看到“复制网站”工具的运行情况。 在 Visual Privacy.aspxStudio 的根目录中创建新的 ASP.NET 页。 让页面使用母版页 Site.master ,并将站点的隐私策略添加到此页面。 图 3 显示了创建此页面后的 Visual Studio。

将新页面命名 <代码>Privacy.aspx</代码> 添加到网站的根文件夹

图 3:将名为 Privacy.aspx 的新页面添加到网站的根文件夹 (单击以查看全尺寸图像)

接下来,返回到“复制网站”用户界面。 如图 4 所示,左窗格现在包括新文件 - Policy.aspxPolicy.aspx.vb。 更重要的是,这些文件标有箭头图标和“新建状态”,表示它们存在于本地站点上,但不存在于远程站点上。

复制网站工具在其左窗格中包括新 <代码>Privacy.aspx</代码> 页

图 4:复制网站工具在其左窗格中包括新 Privacy.aspx 页面 (单击以查看全尺寸图像)

若要部署新文件,请选择这些文件,然后单击箭头图标将其传输到远程站点。 传输完成后, Policy.aspxPolicy.aspx.vb 文件同时存在于状态为“未更改”的本地站点和远程站点上。

除了列出新文件,“复制网站”工具还突出显示了本地站点和远程站点之间任何不同的文件。 若要了解此操作的操作,请返回到页面, Privacy.aspx 并在隐私策略中添加更多字词。 保存页面,然后返回到“复制网站”工具。 如图 5 所示, Privacy.aspx 左窗格中的页面状态为“已更改”,表示它与远程站点不同步。

复制网站工具指示 <代码>Privacy.aspx</代码> 页已更改

图 5:复制网站工具指示 Privacy.aspx 页面已更改 (单击以查看全尺寸图像)

复制网站工具还指示自上次复制操作以来是否删除了文件。 Privacy.aspx从本地项目中删除 并刷新“复制网站”工具。 Privacy.aspxPrivacy.aspx.vb 文件仍列在左窗格中,但状态为“已删除”,表示自上次复制操作以来已将其删除。

发布 Web 应用程序

从 Visual Studio 中部署 Web 应用程序的另一种方法是使用“发布”选项,该选项可通过“生成”菜单进行访问。 “发布”选项显式编译应用程序,然后将所有必要的文件复制到指定的远程站点。 正如我们稍后看到的,“发布”选项比“复制网站”工具更直。 虽然“复制网站”工具允许检查本地和远程网站上的文件,并允许根据需要上传或下载单个文件,但“发布”选项会部署整个 Web 应用程序。

除了将所有所需的文件复制到指定的远程站点外,“发布”选项还会显式编译应用程序。 鉴于需要显式编译 Web 应用程序项目,因此“发布”选项可用于 Web 应用程序项目并不奇怪。 可能有点令人惊讶的是,“发布”选项也可用于网站项目。 如 确定需要部署的文件 教程中所述,可以通过称为 预编译的过程显式编译网站项目。 本教程重点介绍如何将“发布”选项用于 Web 应用程序项目;未来的教程将探讨预编译,届时我们将返回查看将“发布”选项与网站项目配合使用。

注意

虽然 Visual Studio 中的“发布”选项可用于网站项目和 Web 应用程序项目,但 Visual Web Developer 仅为 Web 应用程序项目提供“发布”选项。

让我们看看使用“发布”选项部署书评应用程序。 首先,在 Visual Studio 中打开 BookReviewsWAP (Web 应用程序项目) 。 从“发布”菜单中选择“生成 BookReviewsWAP”项目。 此时会显示一个对话框,提示输入目标位置,以及其他配置选项 (请参阅图 6) 。 与“复制网站”工具非常类似,你可以输入指向本地文件夹、IIS 上的本地网站、支持 FrontPage 服务器扩展的远程网站或 FTP 服务器地址的位置。 可以选择是将远程 Web 服务器上的文件替换为部署的文件,还是在发布之前删除远程站点上的所有内容。 还可以指定是否复制:

  • 仅项目中运行应用程序所需的文件,这会省略不需要的源代码和项目相关文件。
  • 所有项目文件,其中包括源代码文件和 Visual Studio 项目文件(如解决方案文件)。
  • 源项目文件夹中的所有文件,这将复制源项目文件夹中的所有文件,而不管它们是否包含在项目中。

还可以选择上传文件夹的内容 App_Data

“发布 Web”对话框的屏幕截图,其中显示了“发布前删除所有现有文件”和“仅运行所需的文件”复选框。

图 6:指定目标网站 (单击以查看全尺寸图像)

对于 Book Review 应用程序,远程站点包含通过“复制网站”工具复制 BookReviewsWSP 项目时部署的文件。 因此,让我们先让“发布”选项删除所有现有内容。 此外,让我们只是复制必要的文件,而不是使用不需要的源代码和项目文件使生产环境混乱。 指定这些选项后,单击“发布”按钮。 在接下来的几秒钟内,Visual Studio 会将必要的文件部署到目标站点,并在“输出”窗口中显示其进度。

图 7 显示了完成发布操作后 FTP 站点上的文件。 请注意,仅上传了标记页以及必要的服务器和客户端支持文件。

仅将所需的文件发布到生产环境

图 7:仅将所需的文件发布到生产环境 (单击以查看全尺寸图像)

与复制网站工具相比,“发布”选项是一种不那么微妙的工具。 虽然“复制网站”工具允许检查本地和远程站点上的文件并了解它们有何不同,但“发布”选项不提供此类接口。 此外,使用“复制网站”工具可以进行一次性更改、上传或删除单个文件。 “发布”选项不允许这种细化控制;而是发布 整个 应用程序。 此行为有其优缺点。 另一方面,你知道在使用“发布”选项时,不会忘记上传重要文件。 但请考虑,如果对非常大的网站进行了小更改-使用“发布”选项,则无法更新已修改的页面,但必须在 Visual Studio 部署整个网站时等待。

某些文件的内容在生产环境与开发环境之间有所不同的情况并不少见。 一个关键示例是应用程序的配置文件 Web.config。 由于“发布”选项盲目复制 Web 应用程序文件,因此它会使用开发环境中的版本覆盖生产环境的自定义配置文件。 后续教程将进一步探讨本主题,并提供有关在存在此类差异时部署 Web 应用程序的提示。

总结

部署网站涉及将必要的文件从开发环境复制到生产环境。 上一教程演示了如何使用 FTP 客户端(如 FileZilla)传输文件。 本教程介绍了 Visual Studio 中的两个部署工具:“复制网站”工具和“发布”选项。 复制网站工具类似于 FTP 客户端,因为它有一个双平移界面,其中列出了本地计算机上的文件和一个指定的远程计算机,使两台计算机之间上传或下载文件变得容易。 “发布”选项是一种更直接的工具,可以显式编译项目,然后将整个应用程序部署到指定目标。

编程快乐!

深入阅读

有关本教程中讨论的主题的详细信息,请参阅以下资源: