为啥 ExcludeFromPackageFolders 不适用于 msbuild?
Posted
技术标签:
【中文标题】为啥 ExcludeFromPackageFolders 不适用于 msbuild?【英文标题】:Why does ExcludeFromPackageFolders not work for msbuild?为什么 ExcludeFromPackageFolders 不适用于 msbuild? 【发布时间】:2014-11-10 17:30:47 【问题描述】:我一直在试图弄清楚如何排除文件夹作为我网站的一部分进行部署。无论是从 Visual Studio 中部署,还是作为 msbuild 任务的一部分部署在 TFS 构建服务器上,这都需要发生。
这是我的 .pubxml 文件。它在 Visual Studio 中工作(即 bin
和 build
文件夹未发布),但 ExcludeFromPackageFolders 在 TFS 服务器构建时似乎完全被忽略了。我在这里错过了什么?
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<publishUrl>\\server\site\folder</publishUrl>
<DeleteExistingFiles>True</DeleteExistingFiles>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
<ItemGroup>
<ExcludeFromPackageFolders Include="bin">
<FromTarget>Project</FromTarget>
</ExcludeFromPackageFolders>
<ExcludeFromPackageFolders Include="build">
<FromTarget>Project</FromTarget>
</ExcludeFromPackageFolders>
</ItemGroup>
</Project>
【问题讨论】:
【参考方案1】:Team Build 服务器不读取或使用 .pubxml 文件。
如果您有一个 Web 应用程序,那么您将获得一个 _PublishedWebsites/[websitenane] 文件夹,其中仅包含您自动部署所需的内容。你需要 bin 文件夹的内容。
如果您有一个网站,您应该在继续之前将其转换为 Web Apolication,因为网站没有得到很好的支持并且可能会被淘汰。
【讨论】:
我已经有一个使用 .pubxml 文件的 TFS 构建。您所要做的就是将发布配置文件指定为 MS Build 参数的一部分。这已经是一个 Web 应用程序,在这种情况下我实际上不需要 bin 内容。以上是关于为啥 ExcludeFromPackageFolders 不适用于 msbuild?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?