【发布时间】:2015-12-08 05:50:45
【问题描述】:
我正在尝试创建工具来为我的最终用户创建 app.config 文件。
该工具所做的只是创建连接字符串并将它们添加到我已经拥有的模板 app.config 中,但我似乎无法仅将连接字符串保存到我的模板中。相反,我得到了一个完全不同的 app.config。
我已经阅读了有关将配置序列化为 XML 对象并将其保存为 XML 文档的信息,但是当我只想插入连接字符串时,这将需要映射大量配置文件。
这是我的代码:
public Configuration CreateConfiguration(List<DatabaseConfig> databaseList)
{
var configurationPath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, @"Resources\MyApplication.template.config");
if (!File.Exists(configurationPath)) return null;
//Open the app.config for modification
var config = ConfigurationManager.OpenExeConfiguration(configurationPath);
foreach (var database in databaseList)
{
//Retreive connection string setting
var connectionString = config.ConnectionStrings.ConnectionStrings[database.Name];
if (connectionString == null)
{
//Create connection string if it doesn't exist
config.ConnectionStrings.ConnectionStrings.Add(new ConnectionStringSettings
{
Name = database.Name,
ConnectionString = database.ConnectionString,
ProviderName = "System.Data.SqlClient"
});
}
else
{
//Only modify the connection string if it does exist
connectionString.ConnectionString = database.ConnectionString;
}
}
config.Save(ConfigurationSaveMode.Minimal);
//config.Save(ConfigurationSaveMode.Full);
// Display Folder Dialog (User chooses save location)
var folderBrowserDialog = new FolderBrowserDialog();
DialogResult result = folderBrowserDialog.ShowDialog();
if (result == DialogResult.OK)
{
var filePath = Path.Combine(folderBrowserDialog.SelectedPath, @"MyApplication.exe.config");
config.SaveAs(filePath);
}
}
【问题讨论】:
-
你得到一个全新的 app.config 是什么意思?
-
我想创建/保存 app.config,保持模板不变。现在代码使用连接字符串创建了一个新配置,但模板中没有任何内容。
标签: c# .net app-config