如何:在 Visual Studio Web 项目中编辑发布配置文件 (.pubxml) 和 .wpp.targets 文件中的部署设置

本主题介绍如何通过编辑配置部署设置通过创建Visual Studio web项目的一.wpp.targets文件发布配置文件(.pubxml)文件或。 主题适用于以下产品:

因为某些部署配置任务在Visual Studio UI,无法完成编辑发布配置文件或创建.wpp.targets文件可能是必需的。 这些部署选项可以通过编辑控件Web发布管道(WPP)的某个仅指定XML文件。

本主题包括下列章节:

  • 编辑发布配置文件(.pubxml)文件

    如果要配置时特定于特定的设置发布配置文件,编辑发布配置文件。 发布配置文件名为 <profilename>.pubxml并将位于项目文件夹下的properties \ PublishProfiles文件夹。 每个文件包含应用于一个发布配置文件中的设置。 在 发布 Web 向导中输入的值在存储这些文件。

  • 创建.wpp.targets文件

    在项目中配置应用于所有配置文件中时设置中使用,可以创建一.wpp.targets文件。 .wpp.targets文件必须位于项目文件夹,然后必须命名 <projectname>.wpp.targets。

备注

如果使用 打包/发布 SQL 选项配置数据库部署,您可能必须编辑数据库在项目文件的部署设置。有关如何编辑与 打包/发布 SQL 选项相关设置的信息,请参见本主题的.NET Framework 4版本。

编辑发布配置文件(.pubxml)文件

如果您创建一个发布配置文件时,两个文件中PublishProfiles文件夹中创建: <profilename>.pubxml和 <profilename>.pubxml.user。 .pubxml.user文件包含应用于特定用户只在几个设置,如加密密码。 默认情况下它在源代码管理中不包含。 通常,当您更改设置与配置文件相关时编辑.pubxml文件而不是.pubxml.user文件。

编辑发布配置文件(.pubxml)文件

  1. 解决方案资源管理器,双击文件以打开它。

  2. 如果要更改的元素已经在 PropertyGroup 元素,更改其值;否则请将元素添加到 PropertyGroup 元素。

    例如,假设要禁用Visual Studio部署默认setACL行为。 默认情况下,Visual Studio将在目标网站和写入权限的根文件夹的读取权限。在App_Data文件夹中。 如果您知道在文件夹的默认权限正确的,不需要设置,可以禁用特定的此行为通过添加以下XML发布配置文件发布到发布配置文件:

    <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
    

    当您打开发布配置文件时,它类似于以下示例:

    <Project ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <WebPublishMethod>Package</WebPublishMethod>
        <LaunchASiteUrlAfterPublish>False</LaunchASiteUrlAfterPublish>
        <SiteUrlToLaunchAfterPublish />
        <MSDeployServiceURL />
        <DeployIisAppPath />
        <RemoteSitePhysicalPath />
        <AllowUntrustedCertificate>False</AllowUntrustedCertificate>
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <DeployAsIisApp>True</DeployAsIisApp>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName />
        <SavePWD>True</SavePWD>
        <PublishDatabaseSettings>
          <!— this section omitted to keep the example short -->
        </PublishDatabaseSettings>
      </PropertyGroup>
    </Project>
    

    如以下示例所示,若要禁用默认setACL行为,请添加元素,IncludeSetACLProviderOnDestination,在开始标记之后 PropertyGroup 显示:

    <Project ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
        <WebPublishMethod>Package</WebPublishMethod>
        <LaunchASiteUrlAfterPublish>False</LaunchASiteUrlAfterPublish>
        <SiteUrlToLaunchAfterPublish />
        <MSDeployServiceURL />
        <DeployIisAppPath />
        <RemoteSitePhysicalPath />
        <AllowUntrustedCertificate>False</AllowUntrustedCertificate>
        <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
        <DeployAsIisApp>True</DeployAsIisApp>
        <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
        <UserName />
        <SavePWD>True</SavePWD>
        <PublishDatabaseSettings>
          <!— this section omitted to keep the example short -->
        </PublishDatabaseSettings>
      </PropertyGroup>
    </Project>
    
  3. 保存该文件。

避免编辑在.pubxml文件的数据库相关的设置,因为Visual Studio会自动更改这些,当找到在项目中的更改。 数据库相关设置包括:

  • PublishDatabaseSettings 元素。 (此元素可能会出现 PropertyGroup 元素。)

  • 在 PropertyGroup 元素后面的任何 ItemGroup 元素。

创建.wpp.targets文件

在.wpp.targets文件中配置的设置应用于整个发布配置文件。 下面的过程解释如何创建.wpp.targets文件。

创建.wpp.targets文件

  1. 创建一个新XML文件在项目文件夹(持有.csproj或.vbproj文件)的文件夹并将其命名为 <projectname>.wpp.targets。

  2. 创建一个 Project 元素作为顶级元素以及在其中创建 PropertyGroup 元素。

  3. 添加要对所有指定发布配置文件中的设置。 例如,在中,如果想要禁用默认setACL行为,如以下示例所示,添加 IncludeSetACLProviderOnDestination 元素,例如:

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
      </PropertyGroup>
    </Project>
    
  4. 保存并关闭文件。

  5. 关闭Visual Studio然后重新打开它。

    由于Visual Studio缓存.targets文件所做的更改,则到其中一个可能不是有效的,直到下次打开Visual Studio。

还可以使用.wpp.targets文件扩展web发布管道由更为复杂的方式。 例如,除了App_Data外,您可能想保留默认setACL行为,但为自动在另一个文件夹的写入权限。 有关演示如何执行此操作,请参见 将文件夹中的权限发布。Sayed Hashimi的博客。

请参见

概念

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