Visual Studio 如何在VS 2017中将可选文件复制到输出目录?

6l7fqoea  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(163)

在一个大型(团队和代码)项目中,我们设置了各种App.configWeb.config来引用一个(可选的)local.config文件,以便开发人员在本地运行时可以覆盖一些内容。local.config列在.gitignore中,所以它被忽略,不包含在提交中。这对于支持本地配置覆盖非常有效。
但是,对于控制台应用程序,默认情况下不会将local.config复制到输出目录。我可以在VS中设置它的属性,以便将其复制到输出中-它在.csproj文件中列出如下:

<None Include="local.config">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

这在VS中工作正常,即使某个特定的开发人员根本没有local.config文件。但是,它在VSTS构建作业中失败,因为显然msbuild不喜欢缺少列出的文件。
是否有任何方法可以配置项目或msbuild,使其能够容忍/忽略丢失的(可选)文件,而不是使构建失败?

d5vmydt9

d5vmydt91#

这可以通过使用msbuild条件来完成:

<None Include="local.config" Condition="Exists('local.config')">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

相关问题