我第一次使用app.config文件,并且不确定如何在项目引用和app.config文件的情况下继续。以下是我正在使用的项目的描述:
Project1 (进程记录器)填充Project1 app.config文件中指定的数据库中的日志表。
Project2 (计算器)运行计算并填充Project2 app.config文件中指定的数据库中的表。使用对Project1的引用记录日志。
当我在Project2中引用Project1时,在我的“Release”文件夹中,我没有看到Project1的app.config文件。处理这种情况的最佳方法是什么?我不应该在Project1中的app.config文件中配置数据库,而应该将它作为Project2的参数来指定(Project2.LogConnectionString作为参数发送到Project1中的函数)?或者有没有办法让app.config文件出现在我的“Release”文件夹中?
任何帮助都会受到赞赏,我不知道这样做的正确方法是什么。谢谢!
答案 0 :(得分:2)
配置文件基于启动项目。 这意味着当您从proj2中的proj1实例化某些内容时(proj1将是proj2中的引用),您可以使用proj2中的app.config。
基本上,您可以将所有配置存储在proj2中并根据需要使用。
顺便说一句,更改项目名称;)
答案 1 :(得分:0)
最好的选择是在运行时加载Project2内部的Project2。 我要做的是在Project2 confing中放置配置字符串(或者如果需要,可以使用自定义配置部分)。此设置基本上只是告诉应用程序在哪里查看Project1配置。
一旦你有了混淆路径,就可以这样加载它:
System.Configuration.ExeConfigurationFileMap configFile = new System.Configuration.ExeConfigurationFileMap();
configFile.ExeConfigFilename = "my_file.config";
config = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(configFile, System.Configuration.ConfigurationUserLevel.None);
settings = config.AppSettings.Settings;
在这种情况下,我正在从Project1访问AppSettings。
关于我提到的自定义配置,请参阅我的一个帖子,如果您需要更复杂的设置,这个Custom configuration section将完成这项工作。
答案 2 :(得分:0)
如果你使用默认的Properties.Settings(app.config和解释here之间的设置之间的区别),你在Project2中引用了Project1,那么你可以这样做:
// in Project2:
string connectionstring = NamespaceOfProject1.Properties.Settings.Default.Project1ConnString;
答案 3 :(得分:-1)
.NET应用程序有一个配置文件。它通常具有可执行文件的名称。 .NET不支持每个程序集的配置文件。
您应该将连接字符串从可执行文件传递到记录器项目。