如果Application-Data文件夹中不存在App.config,则使用连接字符串动态创建App.config

时间:2011-10-24 19:32:33

标签: c# connection-string app-config configuration-files

我需要执行以下任务的代码。我写了一些代码,如下所示,但是在设置连接字符串时遇到错误。看起来它没有设置属性。

  1. 检查用户的“应用程序数据”文件夹中是否存在App.config。

  2. 如果不存在,则使用ConnectionString

  3. 创建App.config
  4. 如果确实存在,则检查它是否是连接字符串,如果缺少则添加连接字符串。

    string SomeConnectionString ="My Connection String goes here"
    
    //Checking whether App.config file exits in "Application Data" folder or not
      String appDataPath = Environment.GetFolderPath
                       (Environment.SpecialFolder.LocalApplicationData);
    
      if (!File.Exists(appDataPath + "App.config"))
        {
           appDataPath = Path.Combine(appDataPath , "App.config");
           Configuration config = ConfigurationManager.OpenExeConfiguration
                                  (appDataPath );
           var setting = config.ConnectionStrings.ConnectionStrings
                         ["MyConnectionString"]; 
    
           if (setting == null) 
           { 
               Configuration Config = ConfigurationManager.OpenExeConfiguration
                                      (ConfigurationUserLevel.None);
               config.ConnectionStrings.ConnectionStrings
                ["MyConnectionString"].ConnectionString = SomeConnectionString; 
                 //I am getting error on line above. Looks like there is not set 
                 //property on it
    
            Config.Save(ConfigurationSaveMode.Modified,true);
            ConfigurationManager.RefreshSection("connectionStrings");
          }
    
        }
        else
        {
            //check whether it has Connection string or not
            //if not then add connection string 
        }
    

2 个答案:

答案 0 :(得分:2)

app.config仅在您的计划中命名。在构建过程中,文件将重命名为[ApplicationName].exe.config。所以将文件命名为this。 但要小心!通常,程序目录不允许进行写访问(仅限管理员)。 Settings-API是更好的方式!!!!

答案 1 :(得分:1)

您是否查看了Settings API?这可能更适合你正在做的事情。