可能重复:
VS2005 C# Programmatically change connection string contained in app.config
我已经使用C#在我的PC上创建了一个WinForms项目,并希望将项目部署到其他PC上,但我需要更改app.config中的连接字符串,以便连接其他PC中的sql sever数据库,我希望用户配置连接字符串。
我该如何做到这一点?
答案 0 :(得分:5)
如果您为项目创建了一个设置文件,则会有一个以类型安全的方式表示属性的类。这通常类似于TiddleBits.Properties.Settings.Default
,其中 TwiddleBits 是您的程序集名称。
如果您尚未为项目创建设置文件,请执行此操作。它极大地简化了配置文件的使用。
一旦类存在,您就可以像任何其他类一样读写属性。只需记住在完成属性分配后保存更改,否则它们将被丢弃。
答案 1 :(得分:3)
像其他人一样说创建自己的配置文件是要走的路。以下是一些可能有用的代码
只需在VS中创建一个app.config文件,并将其放在与dll相同的目录中。它看起来像这样。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="YourThing" value="Something" />
</appSettings>
</configuration>
然后你可以加载它。
string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string configFile = System.IO.Path.Combine(appPath, "App.config");
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = configFile;
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
然后你可以读取这样的值。
config.AppSettings.Settings["YourThing"].Value;
并像这样保存价值。
config.AppSettings.Settings["YourThing"].Value = "New Value";
config.Save();
答案 2 :(得分:2)
您可以告诉用户编辑app.config,或者您可以提供UI并使用ConfigurationManager在运行时编辑app.config。
答案 3 :(得分:1)