You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core发布时无法将Views文件夹复制到发布目录问题

ASP.NET Core 发布时复制Views文件夹到发布目录的解决方案

你的现有配置在构建时能将Views复制到bin目录,但发布阶段失效,核心原因是发布流程中$(OutDir)指向的是构建输出目录,并非最终的发布目录,发布时需要使用$(PublishDir)变量来指定最终发布路径。

修改现有Target配置

调整Copy任务的目标路径,根据构建/发布场景切换目录:

<Target Name="CopyViews" BeforeTargets="Build;Publish">
    <ItemGroup>
        <ViewsFiles Include="Views\**\*" />
    </ItemGroup>
    <!-- 发布时复制到发布目录 -->
    <Copy SourceFiles="@(ViewsFiles)" DestinationFolder="$(PublishDir)\Views" Condition="'$(PublishDir)' != ''" />
    <!-- 构建时复制到bin目录 -->
    <Copy SourceFiles="@(ViewsFiles)" DestinationFolder="$(OutDir)\Views" Condition="'$(PublishDir)' == ''" />
</Target>

更简洁的替代方案(推荐)

直接通过Content项配置,让MSBuild自动处理构建和发布时的文件复制,无需自定义Target:

<ItemGroup>
    <!-- 将Views下所有文件标记为内容文件,发布时保留最新版本 -->
    <Content Include="Views\**\*">
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
</ItemGroup>

说明

  • CopyToPublishDirectory属性设置为PreserveNewest时,MSBuild会自动对比源文件和目标文件的修改时间,只复制更新过的文件,提升效率。
  • 该方案同时支持构建和发布场景,无需额外区分目录变量。

内容的提问来源于stack exchange,提问作者buga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:25:18