在大型(团队和代码)项目中,我们设置了各种App.config
和Web.config
来引用(可选)local.config
文件,以便开发人员可以覆盖一些在本地运行时的事情。 local.config
中列出了.getignore
,因此它被忽略,不包含在提交中。这非常适合支持本地配置覆盖。
但是,对于控制台应用程序,默认情况下不会将local.config
复制到输出目录。我可以在VS中设置它的属性,以便将其复制到输出中 - 它会像{this}}一样列在.csproj
文件中:
<None Include="local.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
这在VS中运行良好,即使特定开发人员根本没有local.config
文件也是如此。但是,它在VSTS构建作业中失败,因为当列出的文件不存在时,msbuild显然不喜欢它。
有没有办法配置项目或msbuild,以便它可以容忍/忽略丢失(可选)文件,而不是使构建失败?
答案 0 :(得分:4)
这可以通过使用msbuild条件来完成:
<None Include="local.config" Condition="Exists('local.config')">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>