【问题标题】:MSBuild Include/Exclude doesn't work properlyMSBuild 包含/排除无法正常工作
【发布时间】:2018-12-04 08:13:41
【问题描述】:

由于某种原因,我的文件没有被排除:

  <Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Zip'">
    <ItemGroup>
      <ZipFiles Include="$(OutDir)\*.*" Exclude="*.nupkg;*.vshost.*;*.xml;*.pdb;*.snk*;Squirrel.dll;NuGet.Squirrel.dll;Splat.dll;DeltaCompressionDotNet.*;Mono.*" />
    </ItemGroup>
    <Message Importance="High" Text="Result files: @(ZipFiles)" />
    <Zip Files="@(ZipFiles)" WorkingDirectory="$(OutDir)" ZipFileName="../Releases/HotsApi.zip" ZipLevel="9" />
  </Target>

输出:

Result files: bin\Zip\DeltaCompressionDotNet.dll;bin\Zip\DeltaCompressionDotNet.MsDelta.dll;bin\Zip\DeltaCompressionDotNet.PatchApi.dll;bin\Zip\Heroes.ReplayParser.netstandard.dll;bin\Zip\Heroes.ReplayParser.netstandard.pdb;bin\Zip\Hotsapi.Uploader.Common.dll;bin\Zip\Hotsapi.Uploader.Common.pdb;bin\Zip\Hotsapi.Uploader.exe;bin\Zip\Hotsapi.Uploader.exe.config;bin\Zip\Hotsapi.Uploader.pdb;bin\Zip\Mono.Cecil.dll;bin\Zip\Mono.Cecil.Mdb.dll;bin\Zip\Mono.Cecil.Pdb.dll;bin\Zip\Mono.Cecil.Rocks.dll;bin\Zip\MpqTool.netstandard.dll;bin\Zip\MpqTool.netstandard.pdb;bin\Zip\Newtonsoft.Json.dll;bin\Zip\Nito.AsyncEx.Coordination.dll;bin\Zip\Nito.AsyncEx.Tasks.dll;bin\Zip\Nito.Collections.Deque.dll;bin\Zip\Nito.Disposables.dll;bin\Zip\NLog.config;bin\Zip\NLog.dll;bin\Zip\NuGet.Squirrel.dll;bin\Zip\NuGet.Squirrel.pdb;bin\Zip\SharpCompress.dll;bin\Zip\Splat.dll;bin\Zip\Splat.pdb;bin\Zip\Squirrel.dll;bin\Zip\Squirrel.pdb;bin\Zip\System.Collections.Immutable.dll

看起来 MSBuild 忽略了我的 Exclude 子句。我做错了什么?

【问题讨论】:

  • 大约一年前有一个问题,通配符无法按预期工作。有些人使用正则表达式来解决这个错误,但不确定这是否仍然是一个已知的错误......
  • 类似的问题但很老了:stackoverflow.com/questions/45964967/…

标签: c# .net msbuild


【解决方案1】:

排除模式需要在每个目录的基础上匹配搜索模式,所以你想要的是

Exclude="**\*.nupkg;**\*.pdb;…"

【讨论】:

    猜你喜欢
    • 2016-10-03
    • 2017-06-12
    • 2019-03-28
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多