.net 如何共享App.config?
如何在visual studio解决方案中的多个项目之间共享/链接App.config或Web.config?在从visual studio的解决方案资源管理器获得的添加现有项对话框中,可以将指向磁盘上另一个文件的链接添加到项目中。为此,您必须单击添加按钮右侧的向下箭头,然后选择添加为链接。首先,请记住,App.config或web.config对于“流程”中使用的任何项目中运行的所有代码都是可见的由解决方案中的启动项目建立。。。i、 e.如果您的解决方案有一个控制台应用程序和5个类库,或一个WinForms应用程序和4个类库,或一个WIndows服务和3个类库,或一个控制台应用程序用作启动项目,另一个控制台应用程序用作类库,则您没有问题,配置app.config和所有引用的文件,在所有项目中都可见 其次,如果您的解决方案中运行两个或多个独立的可执行进程(如作为服务器的windows服务和winforms客户端),那么如果您希望它们共享特定的配置设置,您可以将这些设置放到machine.config文件中,尽管您在这样做时应该小心。。一些企业服务器团队对此表示不满 来自微软: 使用.net 如何共享App.config?,.net,visual-studio,.net,Visual Studio,如何在visual studio解决方案中的多个项目之间共享/链接App.config或Web.config?在从visual studio的解决方案资源管理器获得的添加现有项对话框中,可以将指向磁盘上另一个文件的链接添加到项目中。为此,您必须单击添加按钮右侧的向下箭头,然后选择添加为链接。首先,请记住,App.config或web.config对于“流程”中使用的任何项目中运行的所有代码都是可见的由解决方案中的启动项目建立。。。i、 e.如果您的解决方案有一个控制台应用程序和5个类库,或一个W
元素的fileattribute指定
将定义公共
元素的外部文件
外部文件将具有与app.config相同的架构
文件,但根节点必须是
而不是
创建公共配置文件:
B在模板窗格中,选择XML文件。
C单击“打开”按钮创建新的通用配置设置文件
元素
元素在
节点中添加所需的尽可能多的常用配置设置,方法与使用相同
任何正常的app.config文件
节点中的
元素。如果某个元素不存在,请添加一个新元素
元素,并指定公共配置文件的相对路径作为其值。客户端项目现在将能够访问公共配置 设置
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="commonSetting1" value="MyApplication1" />
<add key="commonSetting2" value="MySetting" />
</appSettings>
以下示例显示如何在项目的app.config文件中指定公共配置文件的路径
<?xml version="1.0" encoding="utf-8" ?>
<appSettings file=”c:\commonSettings.config”>
<add key="myAppSpecificSetting" value="Setting1" />
</appSettings>
如示例所示,客户端项目的app.config文件可以
中指定的其他设置
元素除了指向公共
配置文件。如果多次指定相同的设置,
使用最后指定的值。如果在中指定了相同的设置
公共配置文件和客户端项目app.config
文件,则使用公共配置文件中指定的值
根据nawfal的职位, 如果要使用ConfigurationManager操作appSettings,请使用configSource属性:
<?xml version="1.0" encoding="utf-8" ?>
<appSettings configSource=”c:\commonSettings.config”>
<add key="myAppSpecificSetting" value="Setting1" />
</appSettings>
OK,我将其添加为链接,现在如何从第二个项目访问链接的应用程序配置的各种值?@nawfal链接的app.config
文件以与项目目录中相同的方式复制到输出文件夹。从那里,您可以通过类访问其内容。@EnricoCampidoglio,但区别在于在正常情况下,您只需调用设置值,如ConfigurationManager.AppSettings[key]等,而无需任何硬编码。但在这里,我需要硬编码配置文件名,然后使用OpenMapConfiguration,对吗?问题在于硬编码。我不喜欢它。是否有其他解决方案?请注意,此方法在编译时不会将app.config文件复制到obj文件夹,而bindingredirects在编译时将不起作用,这可能会导致某些程序集可能从GAC/Path解析,但版本不正确。以防万一。已经有一些很好的答案和有效的解决方案。是的,但在我的情况下,我已经有了一个解决方案,如Enrico C.所述。但我在程序运行时更改appSettings时遇到了问题(这是一个包含GUI项目和windows服务项目的解决方案,这些项目共享相同的appSettings)。我只是想为设置中需要的运行时更改添加一个答案。