.net 外部AppSettings文件不适用于链接文件

.net 外部AppSettings文件不适用于链接文件,.net,asp.net-mvc,visual-studio,web-config,appsettings,.net,Asp.net Mvc,Visual Studio,Web Config,Appsettings,我在同一个解决方案中有一系列20多个MVC项目。对于大量应用程序设置,其中一些应用程序需要共享相同的值 为了便于维护,我希望将这些文件保存在一个公共位置,例如,在相关项目的父目录中的appSettings.config,通过appSettings标签上的file属性将文件保存到web.config中 要将文件放入每个项目中,我可以使用Add>ExistingItem。。。这一切都可以工作,但如果在添加现有项时选择“添加为链接”,则不会工作。如果不选择“添加为链接”,则只会复制文件,并且两个文件之

我在同一个解决方案中有一系列20多个MVC项目。对于大量应用程序设置,其中一些应用程序需要共享相同的值

为了便于维护,我希望将这些文件保存在一个公共位置,例如,在相关项目的父目录中的appSettings.config,通过appSettings标签上的file属性将文件保存到web.config中

要将文件放入每个项目中,我可以使用Add>ExistingItem。。。这一切都可以工作,但如果在添加现有项时选择“添加为链接”,则不会工作。如果不选择“添加为链接”,则只会复制文件,并且两个文件之间的值不会保持同步,这与我的目的背道而驰


有没有办法让它与链接的appSettings.config文件一起工作?

正如您所说,在web.config中,可以指定appSettings部分的内容来自单独的文件。使用此选项可导入共享设置。像这样:

<appSettings file="..\..\config\appSettings.config" />
指定的文件路径相对于web.config的位置。如上所示,您可以简单地使用..\notation引用web根目录之外的路径。这意味着您可以在任何方便的地方维护共享配置文件


有关更多详细信息,请参阅。

为了将应用程序设置集中在一个文件中,并让多个项目使用这些键值对,只需将名为appSettings.config的新文件添加到解决方案/存储库的根目录,然后更新所有web.config文件,以引用相对于web.config项目根目录的新位置。 例如,对于一个项目,web配置可能会更新为:

<appSettings file="../appSettings.config" />
鉴于,第二个项目可能需要将webconfig更新为:

<appSettings file="../../../appSettings.config" />
这完全取决于文件相对于项目位置的位置。在上面的场景中,一个解决方案中有两个项目。使用单个appSettings.config文件,您可以拥有多达X个项目

请参阅下面来自Microsoft的链接。

当我尝试此操作时,我得到一个运行时错误:解析器错误消息:根元素丢失。Resharper抛出了一个警告:路径在网站之外,我确实正确地指定了路径-当我指定了一个不正确的路径时,Resharper向我抛出了一条更愤怒的Path not found消息。我已经测试了它,尽管Resharper发出了警告,它仍然可以工作。确保外部文件的内容具有正确的格式;特别是根元素,而不是查看上面的Microsoft链接了解详细信息。