dotnet publish不会使用复制任务复制文件

时间:2018-12-12 19:34:38

标签: asp.net-core msbuild msbuild-task

我正在尝试自定义我的*.pubxml项目的ASP.NET Core个人资料。为了弄清楚它是如何工作的,我尝试将几个随机的*.log文件从一个目录复制到另一个目录。我曾经以某种方式设法做到了,但是我不知道自己做了什么,现在却陷入困境。这不会复制任何文件。

我执行此配置文件

dotnet publish MyCoolProject.csproj /p:PublishProfile=\Properties\PublishProfiles\TestProfile.pubxml

当我使用-v diag > pubxml.log运行它时,它会创建一个25 MB大日志文件,并且可以在其中看到要复制的所有*.log文件:

   MyFiles
       c:\temp\test1.log
       c:\temp\test2.log

但不会复制它们。

这是我的个人资料:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <ProjectGuid>ec190b7a-d5b4-43d3-a729-75e272037c05</ProjectGuid>
    <publishUrl>c:\temp\bin\</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
    <TargetFramework>net47</TargetFramework>
    <RuntimeIdentifier>win81-x64</RuntimeIdentifier>
  </PropertyGroup>

  <ItemGroup>
    <MyFiles Include="c:\temp\*.log" />
  </ItemGroup>

  <Target Name="CopyFiles">
    <Copy SourceFiles="@(MyFiles)" DestinationFolder="c:\temp\test">
      <Output
          TaskParameter="CopiedFiles"
          ItemName="test" />
    </Copy>    
  </Target>    

</Project>

我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

要在Target中运行FolderProfile.pubxml,请尝试指定诸如BeforeTargetsAfterTargets之类的条件。

<ItemGroup>
    <MyFiles Include="c:\temp\*.log" />
</ItemGroup>

<Target Name="CopyFiles" BeforeTargets="BeforePublish">
    <Copy SourceFiles="@(MyFiles)" DestinationFolder="c:\temp\test">
    <Output
        TaskParameter="CopiedFiles"
        ItemName="test" />
    </Copy>
</Target>