【问题标题】:Define variables inside app.config在 app.config 中定义变量
【发布时间】:2012-06-13 19:43:45
【问题描述】:

是否可以在 app.config 文件中定义变量?

可能是这样的:

<xsl:variable name="folder">
  C:\Data\Log\
</xsl:variable>

...并以这种方式在app.config中使用它:

<file value="$folder\ErrorLog.txt" />

我的 app.config 中有一些不同的文件夹,不会一一更改每个路径。

【问题讨论】:

  • 但我想在 app.config 本身中使用该变量。不在 c# 代码中。

标签: c# xml app-config


【解决方案1】:

您可以在 Visual Studio 中右键单击项目,然后选择属性。然后去设置那里添加不同数据类型(例如字符串)的设置。

另外,如果您正在寻找特定于 log4net 的解决方案,这个问题/答案可能会有所帮助:stackoverflow.com/questions/1535736

【讨论】:

  • 我认为这不是我想要的。我的 app.config 中有一个 log4net 配置,它有大约 300 行和大约 20 个不同结尾(文件)的路径。我希望在 app.config 文件的中心位置定义路径 (C:\Data\Log)。我不会一个一个地替换它,也不会每次必须更改时都“查找并替换”。
  • 我现在明白了 :-)。我认为没有办法单独在配置文件中执行此操作。我以前需要做这样的事情,但是,我会定义一个文件夹设置,然后是各种 File1、File2 等设置。然后在我的 C# 代码中,我将读取设置并通过附加 Folder+File1、Folder+File2 等来构建实际文件位置。我不确定这是否适用于您的 log4net 情况,但否则将允许您定义文件夹一次,并为所有其他文件重复使用。
  • 另外,如果您正在寻找特定于 log4net 的解决方案,这个问题/答案可能会有所帮助:stackoverflow.com/questions/1535736
  • 不,这对我不起作用,因为我不会使用代码进行配置。 :-/ 一切都应该在 app.config 中定义。但也许第二个链接可能会有所帮助。我稍后会阅读它。到目前为止谢谢!
【解决方案2】:

您可以将LogBaseDir定义为环境变量并在app.config中使用:

<appender name="RollingFileError" type="log4net.Appender.RollingFileAppender">
  <file value="${LogBaseDir}\ErrorLog.txt" />
  <!-- ... -->
</appender>

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 2017-05-07
    • 2010-10-10
    • 2010-11-13
    • 2011-05-05
    • 2011-09-27
    • 2019-11-11
    • 2019-04-18
    相关资源
    最近更新 更多