我在同一个解决方案中有一系列MVC项目(20+)。其中一些需要为大量应用设置共享相同的值。
我希望将这些内容保存在相关项目的父目录中的一个公共位置(例如" appSettings.config")以便于维护,通过文件属性将文件放入web.config在appSettings
标记上。
要将文件带入每个项目,我可以使用Add > Existing Item...
这一切都有效,但是如果我在添加现有项目时选择Add As Link
则不行。如果不选择add-as-link,则只复制文件,并且两个文件之间的值不会保持同步,从而无法实现我的目的。
有没有办法让它与链接的appSettings.config文件一起使用?
答案 0 :(得分:5)
正如您所说,在web.config中,您可以指定appSettings部分的内容来自单独的文件。使用此选项可导入共享设置。像这样:
<appSettings file="..\..\config\appSettings.config" />
您指定的文件路径是相对于web.config的位置。如上所示,您只需使用.. \ notation来引用Web根目录之外的路径。这意味着您可以在任何方便的地方维护共享配置文件。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx。
答案 1 :(得分:0)
为了将应用程序设置集中在一个文件中并让许多项目使用这些键值对,只需将名为appSettings.config的新文件添加到解决方案/存储库的根目录,然后将所有web.config文件更新为引用相对于web.config项目根目录的新位置。 例如,对于一个项目,Web配置可能会更新为:
position:absolute
然而,第二个项目可能需要将webconfig更新为:
<appSettings file="../appSettings.config" />
这完全取决于文件相对于项目位置的位置。在上面的场景中,2个项目在一个解决方案中。您可以使用单个appSettings.config文件获得X个项目。
请参阅Microsoft的以下链接。 https://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx