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

Visual Studio为何复制文件内容而非文件本身?如何避免输出文件编译后还原?

解决输出目录中JSON文件编译后被覆盖的问题
  • 调整复制策略+排除源文件
    先把user.json的Copy to Output Directory设为Copy if newer,第一次编译生成输出目录的文件并改好内容后,右键项目里的源user.json,选择「从项目中排除」。之后编译就不会再触发复制,输出目录的修改内容不会被覆盖。

  • 自定义项目文件复制逻辑
    手动编辑项目的.csproj文件,添加以下配置:

    <ItemGroup>
      <None Update="user.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </None>
    </ItemGroup>
    <Target Name="CopyUserJsonOnlyIfMissing" BeforeTargets="BeforeBuild">
      <Copy SourceFiles="user.json" DestinationFiles="$(OutputPath)user.json" Condition="!Exists('$(OutputPath)user.json')" />
    </Target>
    

    这段配置只会在输出目录没有user.json的时候才复制源文件,已经存在的话不管源文件有没有更新都不会覆盖。

  • 迁移配置文件到独立目录
    把user.json移到输出目录外面的独立文件夹,修改程序里读取文件的路径指向这个新位置。这样编译操作碰不到这个文件,随便改内容也不会被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:20:16