c# - 为什么 appSettings 文件属性不允许父目录的路径?

标签 c# configuration-files appsettings

我正在尝试部署一个包含多个可执行文件的项目,其中一些使用通用配置文件。我想把这个通用配置文件放在它自己的目录中。问题是它一直被忽视。我有标签:

<appSettings file="..\Common Configs\Common.config">

在一些特定于可执行文件的配置文件中。如果我将 Common.config 文件复制到与特定配置文件相同的目录,并从标签中删除路径,一切正常。如果我做类似的事情,它甚至可以工作:

<appSettings file="..\App1\Common.config">

App1 是可执行文件所在的文件夹。

This page建议 ConfigSource 不允许路径到父级,但 file 属性允许。

更复杂的是,我正在部署到文件共享,因此我无法在 exe 文件夹中创建硬链接(hard link)。

有谁知道为什么这不起作用?我还能如何使用共享配置文件部署它?

文件夹结构具有以下形式:

解决方案

  • 通用配置

    • 通用配置
  • App1

    • App1.exe

    • App1.exe.config

  • 应用2

    • App2.exe

    • App2.exe.config

最佳答案

如果所有项目都在同一个解决方案中,您可以将配置文件添加到“解决方案项”区域。然后可以与解决方案中的所有 exe 共享此文件。

您需要选择每个需要配置文件的项目,然后选择添加现有项目。从那里选择文件,然后添加为链接。

这将允许您维护一个配置文件并将其与每个 exe 并排部署。

然后当您通过 appSettings 部分引用它时,您可以直接引用该文件。

关于c# - 为什么 appSettings 文件属性不允许父目录的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362046/

相关文章:

c# - 位图数据和 Marshal.Copy? Windows Phone 有什么替代品?

c# - 接受 lambda 的方法的实现

ios - 在哪里放置 Constants.swift?

azure - 如何在 Azure 函数的 AppSettings.json 中添加配置值。有什么结构吗?

c# - 获取另一个 Exe 的 App.Config

c# - 获取 ConfigurationSection 的初始 JSON 表示

c# - 如何知道一个接口(interface)是否派生自一个特定的接口(interface)?

c# - C#中的多维数组访问性能

wolfram-mathematica - 什么在 Mathematica 中生成输入/输出 CellLabels 以及如何为它们添加自动计时?

mysql - MAMP MySQL 无法识别 OSX 中的 my.cnf 值