如何:在 Visual Studio Web 项目中编辑发布配置文件 (.pubxml) 和 .wpp.targets 文件中的部署设置
本主题介绍如何通过编辑配置部署设置通过创建Visual Studio web项目的一.wpp.targets文件发布配置文件(.pubxml)文件或。 主题适用于以下产品:
Visual Studio 2012
Visual Studio Express 2012 for Web
与 的Visual Studio 2010 Visual Studio Web发布更新
与 的Visual Web Developer 2010 Express Visual Studio Web发布更新
因为某些部署配置任务在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)文件
在 解决方案资源管理器,双击文件以打开它。
如果要更改的元素已经在 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>
保存该文件。
避免编辑在.pubxml文件的数据库相关的设置,因为Visual Studio会自动更改这些,当找到在项目中的更改。 数据库相关设置包括:
PublishDatabaseSettings 元素。 (此元素可能会出现 PropertyGroup 元素。)
在 PropertyGroup 元素后面的任何 ItemGroup 元素。
创建.wpp.targets文件
在.wpp.targets文件中配置的设置应用于整个发布配置文件。 下面的过程解释如何创建.wpp.targets文件。
创建.wpp.targets文件
创建一个新XML文件在项目文件夹(持有.csproj或.vbproj文件)的文件夹并将其命名为 <projectname>.wpp.targets。
创建一个 Project 元素作为顶级元素以及在其中创建 PropertyGroup 元素。
添加要对所有指定发布配置文件中的设置。 例如,在中,如果想要禁用默认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>
保存并关闭文件。
关闭Visual Studio然后重新打开它。
由于Visual Studio缓存.targets文件所做的更改,则到其中一个可能不是有效的,直到下次打开Visual Studio。
还可以使用.wpp.targets文件扩展web发布管道由更为复杂的方式。 例如,除了App_Data外,您可能想保留默认setACL行为,但为自动在另一个文件夹的写入权限。 有关演示如何执行此操作,请参见 将文件夹中的权限发布。Sayed Hashimi的博客。