多个部署的连接字符串

时间:2013-09-16 13:27:43

标签: c# .net console-application

我正在构建一个.NET 4.0 C#应用程序,它连接到Web服务,提取一些数据,然后将其插入数据库。此应用程序旨在不需要用户输入,因为它将被安排为每天运行。

当我将此应用程序部署到我们的客户时,我遇到了一个问题。其中一些使用SQL Server作为后端,一些使用MS Access。我能想到的唯一解决方案是将连接字符串作为命令行参数传递,但我不喜欢该方法。由于我必须将其部署到70多个不同的客户,我宁愿不为每个客户编制该程序的副本。

感谢任何想法和想法。

1 个答案:

答案 0 :(得分:3)

您可以在App.config文件中包含连接字符串。在应用程序部署期间,您可以通过查询registery来检查用户计算机是否安装了SQL Server。基于此结果更新应用程序配置与数据库特定的连接字符串。

App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<appSettings>
<add key="DbConnectionString" value="Will be updated during deployment" />
</appSettings>

</configuration>

更新app.config中的连接字符串:

Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings["DbConnectionString"].Value = "DB Specific Connection string";

//Save only the modified section of the config
configuration.Save(ConfigurationSaveMode.Modified);

//Refresh the appSettings section to reflect updated configurations
ConfigurationManager.RefreshSection(Constants.AppSettingsNode);