在我的csproj中,我有一个预构建事件,我在其中运行Vue js项目的构建。它输出到“dist”文件夹,并由cshtml文件加载。
在csproj文件中,我有一个对dist文件夹的引用,我告诉它复制到发布目录:
<ItemGroup>
<Content Include="dist\**" CopyToPublishDirectory="Always" />
</ItemGroup>
在发布时,MsBuild似乎试图复制pre-build事件开始之前存在的dist文件夹中的文件。有没有办法让MsBuild在预构建事件后复制文件夹的内容?
为了支持工具(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>
您可以使用Copy task手动添加步骤
<Target Name="MyCopyStep" AfterTargets="AfterPublish">
<ItemGroup>
<MyDistFiles Include="dist\**" />
</ItemGroup>
<Copy SourceFiles="@(MyDistFiles)" DestinationFiles="@(MyDistFiles->'$(PublishDir)\dist\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>