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
相关产品推荐
相关产品推荐

