复制到PreBuild事件的发布目录输出

问题描述 投票:0回答:2

在我的csproj中,我有一个预构建事件,我在其中运行Vue js项目的构建。它输出到“dist”文件夹,并由cshtml文件加载。

在csproj文件中,我有一个对dist文件夹的引用,我告诉它复制到发布目录:

<ItemGroup>
  <Content Include="dist\**" CopyToPublishDirectory="Always" />
</ItemGroup>

在发布时,MsBuild似乎试图复制pre-build事件开始之前存在的dist文件夹中的文件。有没有办法让MsBuild在预构建事件后复制文件夹的内容?

asp.net-core msbuild csproj
2个回答
2
投票

为了支持工具(VS等)支持的所有可能的发布机制,我建议将其设置为与内置角度模板的工作方式类似:

<Target Name="PublishDistFiles" AfterTargets="ComputeFilesToPublish">
  <ItemGroup>
    <DistFiles Include="dist\**" />
    <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
      <RelativePath>%(DistFiles.Identity)</RelativePath>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </ResolvedFileToPublish>
  </ItemGroup>
</Target>

0
投票

您可以使用Copy task手动添加步骤

<Target Name="MyCopyStep" AfterTargets="AfterPublish">
  <ItemGroup>
     <MyDistFiles Include="dist\**" />
  </ItemGroup>
  <Copy SourceFiles="@(MyDistFiles)" DestinationFiles="@(MyDistFiles->'$(PublishDir)\dist\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
© www.soinside.com 2019 - 2024. All rights reserved.