使用 Visual Studio 或 Visual Web Developer 通过SQL Server Compact部署 ASP.NET Web 应用程序:配置项目属性 - 第 4 个,共 12 个

作者 :Tom Dykstra

下载初学者项目

本系列教程介绍如何使用 Visual Studio 2012 RC 或 Visual Studio Express 2012 RC for Web 部署 (发布) 包含 SQL Server Compact 数据库的 ASP.NET Web 应用程序项目。 如果安装 Web 发布更新,也可以使用 Visual Studio 2010。 有关该系列的简介,请参阅 该系列中的第一个教程

有关演示 Visual Studio 2012 RC 版本后引入的部署功能的教程,演示如何部署除 SQL Server Compact 以外的SQL Server版本,以及如何部署到 Azure 应用服务 Web 应用,请参阅使用 Visual Studio ASP.NET Web 部署

概述

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

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

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

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

Package_Publish_Web_tab

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

Package_Publish_Web_tab_selecting_Release

选择 Active (Release) Release 后,会看到在使用发布生成配置进行部署时有效的值:

  • 在“ 要部署的项 ”框中, 仅选择运行应用程序所需的文件 。 其他选项包括 此项目中的所有文件此项目文件夹中的所有文件。 例如,通过保持默认选择不变,可以避免部署源代码文件。 此设置是包含SQL Server Compact二进制文件的文件夹必须包含在项目中的原因。 有关此设置的详细信息,请参阅 ASP.NET Web 应用程序项目部署常见问题解答中的为什么未部署项目文件夹中的所有文件?
  • 选中了“排除”生成的调试符号。 使用此生成配置时,不会进行调试。
  • 未选择“从App_Data文件夹中排除文件。 成员资格数据库的SQL Server Compact文件位于该文件夹中,必须对其进行部署。 部署不包含数据库更改的更新时,将选中此复选框。
  • 未选择在发布前预编译此应用程序。 在大多数情况下,无需预编译 Web 应用程序项目。 有关此选项的详细信息,请参阅 包/发布 Web 选项卡、项目属性高级预编译设置对话框
  • 已选中“包/发布 SQL”选项卡中配置的所有数据库,但此选项现在不起作用,因为未配置“打包/发布 SQL”选项卡。该选项卡适用于旧版数据库部署方法,旧版数据库部署方法是部署SQL Server数据库的唯一选项。 你将使用迁移到 SQL Server 教程中的“打包/发布 SQL”选项卡。
  • Web 部署包设置” 部分不适用,因为你在这些教程中使用了一键式发布。

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

确保已部署 Elmah 文件夹

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

Elmah 文件夹

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

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

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

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