为啥 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 中工作(即 binbuild 文件夹未发布),但 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,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?