我正在构建一个.NET 4.0 C#应用程序,它连接到Web服务,提取一些数据,然后将其插入数据库。此应用程序旨在不需要用户输入,因为它将被安排为每天运行。
当我将此应用程序部署到我们的客户时,我遇到了一个问题。其中一些使用SQL Server作为后端,一些使用MS Access。我能想到的唯一解决方案是将连接字符串作为命令行参数传递,但我不喜欢该方法。由于我必须将其部署到70多个不同的客户,我宁愿不为每个客户编制该程序的副本。
感谢任何想法和想法。
答案 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);