我试图将app.config文件添加到我的DLL,但所有尝试都失败了.
根据MusicGenesis在" 将配置信息放入DLL中 "这应该不是问题.显然我做错了什么......
以下代码应该从我的DLL返回我的ConnectionString:
return ConfigurationManager.AppSettings["ConnectionString"];
Run Code Online (Sandbox Code Playgroud)
但是,当我将app.config文件复制到我的控制台应用程序时,它工作正常.
有任何想法吗?
默认情况下,设置存储在: C:\Documents and Settings\\Local Settings\Application Data\<Project Name>
如何将此路径更改为应用程序目录.我也不想为不同的用户提供不同的文件.如何使设置全局?
我试图将设置的范围更改为"应用程序",但我无法在运行时更改它们.
有没有办法在运行时指定我想使用的配置文件(除了App.config)?例如,我想从命令行读取第一个参数,该命令行将是应用程序配置的路径,我希望我的应用程序在使用ConfigurationManager.AppSettings时引用它(这可能是不可能的,但仍值得询问).
我找到了这段代码:
System.Configuration.Configuration config
= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.File = myRuntimeConfigFilePath;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
Run Code Online (Sandbox Code Playgroud)
它工作,但它覆盖了原始的App.config的AppSettings部分,我的应用程序不应该写任何东西.
虽然有很多关于.net配置文件的帖子,但我相信我的要求不允许提出任何解决方案(或者我不理解这个过程对我有用).
情况是我有一个Windows窗体应用程序(也可能是另一个应用程序),它绑定某些用户输入字段(例如IP地址),以及表单属性(窗口大小等)到应用程序设置(在属性中 - >设置区域).据我所知,这些设置与我项目的app.config文件中的设置相同,因此我应该能够使用System.Configuration.ConfigurationManager类来操作这些设置.
我想要做的是允许用户导出和导入所有已保存的设置.我认为保存和替换应用程序使用的配置文件会更容易,而不是对某些自定义对象进行序列化或使用INI文件.
将当前设置保存到指定文件相对容易:
internal static void Export(string settingsFilePath)
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
config.SaveAs(settingsFilePath);
}
Run Code Online (Sandbox Code Playgroud)
但是,恢复配置文件以覆盖当前设置很困难.好像我可以像这样打开一个配置文件
var newConfig = ConfigurationManager.OpenExeConfiguration(settingsFilePath)
Run Code Online (Sandbox Code Playgroud)
但我没有看到如何完全替换当前配置中的所有设置与导入文件的设置.[编辑:此重载应该接收.exe的路径,而不是.config文件.如果调用代码未在配置文件中引用相同的程序集,则以这种方式打开exe文件可能会抛出ConfigurationErrorsException.
也许我只需要使用其他帖子中列出的方法来仅替换配置的一部分,而不是整个部分,但我不知道这将如何工作.
有任何想法吗?我是走正确的轨道,还是应该使用INI文件(或其他东西)?
我的asp.net应用程序使用web.config进行常见配置.我还有一个部分将一些数据对象映射到连接字符串,该部分将成千上万行.我想将该部分移动到另一个配置文件"dataMappings.config",所以我不会批量添加web.config - 是否有访问该配置文件的标准机制?
谢谢,安德烈