【问题标题】:excluding folders from Visual Studio 2015 publication从 Visual Studio 2015 发布中排除文件夹
【发布时间】:2016-09-19 13:34:49
【问题描述】:

我需要从项目的发布中排除文件夹 media、umbraco 和 umbraco_client。这些文件夹很少更改,我不想每次都等到它们在 FTP 服务器上发布期间被复制。这是我的配置 local.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>My_path</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
    <ExcludeFoldersFromDeployment>media;umbraco;umbraco_client</ExcludeFoldersFromDeployment>
    <MSDeployUseChecksum>true</MSDeployUseChecksum>
    <AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipmediaFolder">
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\media</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipUmbracoFolder">
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipUmbraco_clientConfig">
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco_client</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>
</Project>

该媒体文件夹未发布后,但 umbraco 和 umbraco_client 文件夹仍在发布过程中继续复制。之后,我从项目中排除了 umbraco 和 umbraco_client 文件夹,但这也没有解决问题。有任何想法吗? :)

【问题讨论】:

  • 这种方法对我总是有效的。当您最初执行此操作时,可能出现了问题。您不能删除当前配置文件并重新开始吗? VS 有时脾气暴躁。

标签: visual-studio-2015 asp.net-mvc-5 umbraco7


【解决方案1】:

我在遇到一些问题后才进行这项工作,也许它对您的情况有所帮助:

1.- 将您的 MsDeploySkipRules 移动到与 .csproj 位于同一文件夹中的名为 yourprojectname.wpp.targets 的单独文件中,其中包含以下内容(您必须为每个文件夹放置一个 filePath 和 dirPath 及其通配符):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>

      <MsDeploySkipRules Include="SkipmediaFolderFiles">
        <SkipAction></SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\media\\.*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipmediaFolderChildFolders">
        <SkipAction></SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\media\\.*\\*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>

      <MsDeploySkipRules Include="SkipUmbracoFolderFiles">
          <SkipAction></SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco\\.*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipUmbracoFolderChildFolders">
          <SkipAction></SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco\\.*\\*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>

      <MsDeploySkipRules Include="SkipUmbraco_clientFolderFiles">
          <SkipAction></SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco_client\\.*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipUmbraco_clientFolderChildFolders">
          <SkipAction></SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\umbraco_client\\.*\\*</AbsolutePath>
          <Apply>Destination</Apply>
        <XPath></XPath>
      </MsDeploySkipRules>

      </ItemGroup>

</Project>

2.- 之后(非常重要)保存文件,关闭 Visual Studio 并再次打开它。许多人在这一点上失败了(他们修改文件并尝试在不关闭 VS 的情况下再次部署,然后他们不欣赏任何更改并错误地认为它不起作用)。

3.- 再次尝试发布。

在 Visual Studio 2015 中测试。

【讨论】:

    猜你喜欢
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    相关资源
    最近更新 更多