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