如何拥有"可选" Visual Studio解决方案中的文件?

时间:2018-03-09 12:13:48

标签: c# asp.net visual-studio

我正在尝试使用NConfig为我的解决方案添加可选的每个开发人员配置设置。我告诉NConfig使用Config\Custom.config作为其覆盖文件。但是,我希望这是可选。因此,如果文件不存在,它将回退到使用Web.config中的设置。

NConfig可以处理这个问题,但问题是,如果文件不存在,解决方案就无法构建。我需要让Visual Studio将文件复制到输出目录,以便NConfig可以看到它,但是如果我将文件引用添加到解决方案并设置"构建操作"到"永远复制"或者"如果文件系统上没有文件,我会收到错误。

我怎样才能拥有"可选"在我的解决方案中,它可能存在也可能不存在,如果存在,则将文件复制到输出目录?

1 个答案:

答案 0 :(得分:2)

通过将宏用于构建事件,您可以根据解决方案的当前路径结构指定源和目标的路径:

在构建后事件中,使用以下脚本:

if exist "$(ProjectDir)"Custom.config xcopy "$(ProjectDir)"Custom.config "$(TargetDir)Config\" /y

请注意宏标记周围的引号。如果您的目录结构包含空格,引号将考虑它们。此脚本将文件复制到解决方案的当前输出目录中的“Config”子文件夹(如果该文件夹不存在,则创建该文件夹)。