为什么MSBuild复制任务无法复制?

Chr*_*ris 2 msbuild copy msbuild-task

我正在尝试使用MSBuild Copy任务将由我的版本创建的二进制文件复制到某个文件夹。不幸的是,该过程无声地失败了。没有发出错误消息,也没有文件被复制。

这是我的.csproj文件的相关部分:

<Target Name="CopyFilesForModule" AfterTargets="AfterBuild">
  <CreateItem Include="bin\**\*.*" Exclude="bin\**\*.pdb;bin\**\*.xml">
    <Output TaskParameter="Include" ItemName="MySourceFiles" />
  </CreateItem>
  <Copy SourceFiles="$(MySourceFiles)" DestinationFolder="Areas\KoobooModule7\bin">
    <Output
          TaskParameter="CopiedFiles"
          ItemName="Changed" />
  </Copy>
  <Message Text="sourcefiles: @(MySourceFiles)" />
  <Message Text="changed:@(Changed)" Importance="high" />
</Target>
Run Code Online (Sandbox Code Playgroud)

如您所见,我已经添加了用于调试目的的消息。我使用以下命令行调用msbuild:

“ c:\ Program Files(x86)\ MSBuild \ 12.0 \ Bin \ MSBuild.exe” / t:rebuild / verbosity:d
iag KoobooModule7.csproj> buildlog.txt

这是我的构建日志中的相关摘录:

项目“ C:\ Users \ chris \ Documents \ Visual Studio 2013 \ Projects \ KoobooModule7 \ KoobooModule7 \ KoobooModule7.csproj”中的目标“ CopyFilesForModule:(TargetId:75)”(目标“生成”取决于它):
任务“ CreateItem”(TaskId:43)
  任务参数:Include = bin \ ** \ *。*(TaskId:43)
  任务参数:
      排除=
          bin \ ** \ *。pdb
          bin \ ** \ *。xml(TaskId:43)
完成执行任务“ CreateItem”。(TaskId:43)
任务“复制”(TaskId:44)
  任务参数:DestinationFolder = Areas \ KoobooModule7 \ bin(TaskId:44)
完成执行任务“复制”。(TaskId:44)
任务“消息”(TaskId:45)
  任务参数:文本=源文件:bin \ CookComputing.XmlRpcV2.dll; bin \ DiffPlex.dll; bin \ dotless.Core.dll; bin \ DotNetOpenAuth.AspNet.dll; bin \ DotNetOpenAuth.Core.dll; bin \ DotNetOpenAuth.OAuth .Consumer.dll; bin \ DotNetOpenAuth.OAuth.dll; bin \ DotNetOpenAuth.OpenId.dll; bin \ DotNetOpenAuth.OpenId.RelyingParty.dll; bin \ HtmlAgilityPack.dll; bin \ Ionic.Zip.Reduced.dll; bin \ Kooboo .CMS.Account.dll; bin \ Kooboo.CMS.Caching.dll; bin \ Kooboo.CMS.Common.dll; bin \ Kooboo.CMS.Common.Runtime.Dependency.Ninject.dll; bin \ Kooboo.CMS.Content .dll; bin \ Kooboo.CMS.Form.dll; bin \ Kooboo.CMS.Membership.dll; bin \ Kooboo.CMS.Search.dll; bin \ Kooboo.CMS.Sites.dll; bin \ Kooboo.CMS.Sites .TemplateEngines.Razor.dll; bin \ Kooboo.CMS.Web.dll; bin \ Kooboo.dll; bin \ KoobooModule7.dll; bin \ KoobooModule7.dll.config; bin \ Lucene.Net.Contrib.Highlighter.dll; bin \ Lucene.Net.dll; bin \ Microsoft.Web.Infrastructure.dll; bin \ Mono。Math.dll; bin \ Newtonsoft.Json.dll; bin \ Ninject.dll; bin \ NuGet.Core.dll; bin \ Org.Mentalis.Security.Cryptography.dll; bin \ System.Net.Http.dll; bin \ System.Web.Helpers.dll; bin \ System.Web.Mvc.dll; bin \ System.Web.Razor.dll; bin \ System.Web.WebPages.Administration.dll; bin \ System.Web.WebPages.Deployment。 dll; bin \ System.Web.WebPages.dll; bin \ System.Web.WebPages.Razor.dll(TaskId:45)
  源文件:bin \ CookComputing.XmlRpcV2.dll; bin \ DiffPlex.dll; bin \ dotless.Core.dll; bin \ DotNetOpenAuth.AspNet.dll; bin \ DotNetOpenAuth.Core.dll; bin \ DotNetOpenAuth.OAuth.Consumer.dll; bin \ DotNetOpenAuth.OAuth.dll; bin \ DotNetOpenAuth.OpenId.dll; bin \ DotNetOpenAuth.OpenId.RelyingParty.dll; bin \ HtmlAgilityPack.dll; bin \ Ionic.Zip.Reduced.dll; bin \ Kooboo.CMS.Account。 dll; bin \ Kooboo.CMS.Caching.dll; bin \ Kooboo.CMS.Common.dll; bin \ Kooboo.CMS.Common.Runtime.Dependency.Ninject.dll; bin \ Kooboo.CMS.Content.dll; bin \ Kooboo.CMS.Form.dll; bin \ Kooboo.CMS.Membership.dll; bin \ Kooboo.CMS.Search.dll; bin \ Kooboo.CMS.Sites.dll; bin \ Kooboo.CMS.Sites.TemplateEngines.Razor。 dll; bin \ Kooboo.CMS.Web.dll; bin \ Kooboo.dll; bin \ KoobooModule7.dll; bin \ KoobooModule7.dll.config; bin \ Lucene.Net.Contrib.Highlighter.dll; bin \ Lucene.Net。 dll; bin \ Microsoft.Web.Infrastructure.dll; bin \ Mono.Math.dll;bin \ Newtonsoft.Json.dll; bin \ Ninject.dll; bin \ NuGet.Core.dll; bin \ Org.Mentalis.Security.Cryptography.dll; bin \ System.Net.Http.dll; bin \ System.Web。 Helpers.dll; bin \ System.Web.Mvc.dll; bin \ System.Web.Razor.dll; bin \ System.Web.WebPages.Administration.dll; bin \ System.Web.WebPages.Deployment.dll; bin \ System.Web.WebPages.dll; bin \ System.Web.WebPages.Razor.dll(TaskId:45)
完成执行任务“消息”。(TaskId:45)
任务“消息”(TaskId:46)
  任务参数:文本=已更改:(TaskId:46)
  任务参数:重要性=高(任务ID:46)
  已更改:(TaskId:46)
完成执行任务“消息”。(TaskId:46)
在项目“ KoobooModule7.csproj”中完成了构建目标“ CopyFilesForModule” 。:(TargetId:75)

如您所见,当复制的文件为空时,已正确识别了要复制的文件。我如何找出复制过程失败的原因?

fsi*_*zzi 6

您不是在复制任务中引用MySourceFiles项,而是MySourceFiles属性。

<Copy SourceFiles="$(MySourceFiles)" DestinationFolder="Areas\KoobooModule7\bin">
Run Code Online (Sandbox Code Playgroud)

应该

<Copy SourceFiles="@(MySourceFiles)" DestinationFolder="Areas\KoobooModule7\bin">
Run Code Online (Sandbox Code Playgroud)