ASP.NET核心发布时包含文件

3

在发布时是否可能将一些文件包含并放置在特定的文件夹中?

我想把所有的报告文件(*.rdlc)放在发布位置的Reports文件夹中。

我尝试了以下方法:

<ItemGroup>
    <Content Include="..\Reports\**\*.rdlc"
             PackagePath="\Reports"
             CopyToPublishDirectory="Always"/>
</ItemGroup>

但是它总是将文件放在发布目标的根目录下。

尝试使用 <Content Include="../Reports/**/*.rdlc" PackagePath="Reports/" CopyToPublishDirectory="Always"/> - user2771704
可能是ASP.NET Core:在发布时排除或包含文件的重复问题。 - Set
我看了那篇帖子,但对我不起作用。似乎Content无法识别PackagePath属性,它把文件放在了根目录下。 - Igor
1个回答

8
我找到了解决方案:
<ItemGroup>
    <ReportFiles Include="..\Reports\**\*.rdlc">
        <Path>\Reports</Path>
    </ReportFiles>
</ItemGroup>

<Target Name="PrepublishScript"
        BeforeTargets="PrepareForPublish">
    <Copy SourceFiles="@(ReportFiles)"
          DestinationFolder="$(PublishDir)\%(Path)"
          SkipUnchangedFiles="false" />
</Target>

谢谢。对于其他人,只需小心 include 的双点。如果您的文件夹位于项目级别,则只需要使用一个点。 - Augusto Barreto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接