【问题标题】:Relocating config files of depending assemblies重新定位依赖程序集的配置文件
【发布时间】:2017-03-20 23:09:06
【问题描述】:

我的应用程序使用NLog 作为隐藏在 MyLogging 项目外观后面的日志记录框架。该项目被许多网站引用,以不使它们直接依赖于 NLog。在从日志项目编译NLog.config 后,最终在每个站点的bin 文件夹中,NLog 设法在启动期间自动找到它。这是可以理解的,也很好。但是,在 bin 文件夹中编辑 any 文件会强制 ASP.NET 重新启动工作进程,因此我希望在常规 web.config 旁边有一个文件夹 NLog.config

我试图实现\避免的事情:

  1. 将 NLog 配置保存在一个文件中,因为它对我所有的网站都是一样的
  2. 不将其嵌入到站点 web.config(不触发 ASP.NET 自动重启)
  3. 仅在使用 msbuild 命令构建项目后移动文件不是一种选择,因为站点已部署到 Azure(在发布过程中不会打包移动的文件)
  4. 我想避免弄乱部署后脚本和硬编码的东西,比如E:\siteroot\0

这个问题实际上并不是特定于 NLog 的,因为我在使用标准 app.config 文件时也会遇到同样的问题。我在这里有什么选择?

【问题讨论】:

  • 将 nlog.config 保存在您的 web.config 旁边(所以相同的目录),应该可以工作(我一直使用它)。为什么这会给您带来问题?
  • 这就是我想要得到的,因为编译后 NLog.config 位于 bin 文件夹中(其 BuildAction 设置为 Content)。

标签: asp.net .net azure configuration nlog


【解决方案1】:

对于 ASP.NET 应用程序,建议设置:

  • “构建操作”到“内容”。否则它不会被复制到根文件夹(带有 web.config 的文件夹)
  • “复制到输出目录”为“无”。否则它将被复制到您的 bin 文件夹中。

见:

【讨论】:

  • 如果配置文件是 ASP.NET 项目的一部分,但它不是。它是 Web 项目引用的另一个项目(类库)的内容。
  • 你可以在VS中添加文件作为链接文件吗?
猜你喜欢
  • 1970-01-01
  • 2019-01-30
  • 2022-10-06
  • 2011-05-05
  • 2019-11-28
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多