通过


使用 Visual Studio ASP.NET Web 部署:项目属性

作者:Tom Dykstra

下载入门项目

本教程系列介绍如何使用 Visual Studio 2012 或 Visual Studio 2010 将 ASP.NET Web 应用程序部署到 Azure 应用服务 Web 应用或第三方托管提供程序。 有关该系列的信息,请参阅 该系列中的第一个教程

概述

某些部署选项在项目文件( .csproj.vbproj 文件)中存储的项目属性中配置。 在大多数情况下,这些设置的默认值是所需设置,但如果需要更改这些设置,可以使用 Visual Studio 中内置的 项目属性 UI 来处理这些设置。 在本教程中,你将查看 项目属性中的部署设置。 您还可以创建一个占位符文件,该文件会在部署时导致生成一个空文件夹。

在项目属性窗口中配置部署设置

影响部署期间大多数情况的设置都包含在发布简介中,正如接下来的教程中所示。 应注意的一些设置位于“项目属性”窗口的“包/发布”选项卡中。 每个生成配置都有指定的设置,也就是说,发布版本和调试版本的设置可能不同。

解决方案资源管理器中,右键单击 ContosoUniversity 项目,选择 “属性”,然后选择“ 包/发布 Web ”选项卡。

“包/发布 Web”选项卡

当窗口显示时,它默认展示当前为解决方案激活的生成配置的设置。 如果“配置”框未显示“活动(发布)”,请选择“发布”以显示发布生成配置的设置。 你将将发布版本部署到测试和生产环境。

选择发布生成配置

选择 “活动”(发布)“发布 ”后,会看到使用发布生成配置进行部署时有效的值:

  • “要部署的项 ”框中, 仅选中运行应用程序所需的文件 。 其他选项是 此项目中的所有文件此项目文件夹中的所有文件。 例如,通过保留默认选择不变,可以避免部署源代码文件。 此设置是包含 SQL Server Compact 二进制文件的文件夹必须包含在项目中的原因。 有关此设置的详细信息,请参阅 ASP.NET Web 应用程序项目部署常见问题解答中为何未部署项目文件夹中的所有文件
  • 已选择排除生成的调试符号。 使用此生成配置时,不会进行调试。
  • 已选择包含包/发布 SQL 选项卡中配置的所有数据库。 指定 Visual Studio 是否将部署数据库和文件。 尽管复选框标签仅提及 “包/发布 SQL ”选项卡,但清除此复选框也会禁用发布配置文件中配置的数据库部署。 稍后将执行此操作,因此复选框必须保持选中状态。 “ 包/发布 SQL ”选项卡用于未在这些教程中使用的旧数据库发布方法。
  • Web 部署包设置部分不适用,因为在这些教程中使用一键式发布。

“配置 ”下拉框更改为“调试”以查看调试版本的默认设置。 这些值相同,但取消选中排除生成的调试符号,以便在部署调试版本时进行调试。

确保 Elmah 文件夹被部署

如上一教程所示, Elmah NuGet 包 提供错误日志记录和报告功能。 在 Contoso University 应用程序中,Elmah 已配置为将错误详细信息存储在名为 Elmah 的文件夹中:

Elmah 文件夹

从部署中排除特定文件或文件夹是一个常见要求;另一个示例是用户可以将文件上传到的文件夹。 你不希望将开发环境中创建的日志文件或上传的文件部署到生产环境。 如果要将更新部署到生产环境,则不希望部署过程删除生产中存在的文件。 (根据设置部署选项的方式,如果在目标站点中存在文件,但在部署时没有源站点,则 Web 部署会将其从目标中删除。

如本教程前面所述,“包/发布 Web”选项卡中要部署的项选项设置为“仅运行此应用程序所需的文件”。 因此,不会部署由 Elmah 在开发中创建的日志文件,这是你想要执行的操作。 (要部署,必须包含在项目中,其生成操作属性必须设置为内容。有关详细信息,请参阅 ASP.NET Web 应用程序项目部署常见问题解答中的项目文件夹中的所有文件为何未部署? 但是,除非至少有一个文件要复制到目标站点,否则 Web 部署不会在目标站点中创建一个文件夹。 因此,你将将 .txt 文件添加到文件夹中以充当占位符,以便复制该文件夹。

解决方案资源管理器中,右键单击 Elmah 文件夹,选择“ 添加新项”,然后创建名为 “Placeholder.txt”的文本文件。 将以下文本放入其中:“这是一个占位符文件,以确保部署文件夹。”并保存该文件。 这是为了确保 Visual Studio 部署此文件及其所在的文件夹,因为默认情况下,.txt 文件的生成操作属性设置为“内容”。

总结

您现已完成所有的部署设置任务。 在下一教程中,你将将 Contoso University 站点部署到测试环境并在那里进行测试。