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