C# 是否将条目写入锁定的设置文件?
我有下面的代码,它应该获取当前的配置文件,向其中添加一个条目,然后写回该文件。但是,由于文件被锁定,这不起作用,请参见堆栈跟踪。在执行此操作之前,是否有办法释放它?或者我可以用另一种方式吗 代码: 错误: 我还尝试使用以下命令手动修改exe配置:C# 是否将条目写入锁定的设置文件?,c#,settings,C#,Settings,我有下面的代码,它应该获取当前的配置文件,向其中添加一个条目,然后写回该文件。但是,由于文件被锁定,这不起作用,请参见堆栈跟踪。在执行此操作之前,是否有办法释放它?或者我可以用另一种方式吗 代码: 错误: 我还尝试使用以下命令手动修改exe配置: System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming);
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming); // Add an Application Setting.
XmlDocument doc = new XmlDocument();
doc.Load(@config.FilePath);
ConfigurationSection settings = config.GetSection("EmailParserWinService.Settings");
settings.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
config.Sections.Add("GENERAL_USER_SETTINGS", settings);
config.Save();
然而,这造成了一个问题,因为它似乎不存在的位置
System.Xml.dll中出现“System.IO.DirectoryNotFoundException”
更新:
我现在使用的是:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming); // Add an Application Setting.
XmlDocument doc = new XmlDocument();
doc.Load(@config.FilePath);
ConfigurationSection settings = config.GetSection("EmailParserWinService.Settings");
settings.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
config.Sections.Add("GENERAL_USER_SETTINGS", settings);
config.Save();
但它在某种程度上是一个空引用。具体而言,这一行:
settings.SectionInformation.AllowExeDefinition=ConfigurationLowexeDefinition.MachineToLocalUser
不知为什么,我的设置变量,即使我在上面定义了它?他回来了。我认为问题在于我没有提取正确的代码段。其中哪一部分包含设置
[0] "system.data.dataset" object {string}
[1] "mscorlib" object {string}
[2] "system.data.sqlclient" object {string}
[3] "connectionStrings" object {string}
[4] "system.webServer" object {string}
[5] "appSettings" object {string}
[6] "startup" object {string}
[7] "runtime" object {string}
[8] "system.data.odbc" object {string}
[9] "system.data" object {string}
[10] "configProtectedData" object {string}
[11] "system.codedom" object {string}
[12] "uri" object {string}
[13] "system.runtime.remoting" object {string}
[14] "satelliteassemblies" object {string}
[15] "system.data.oledb" object {string}
[16] "assemblyBinding" object {string}
[17] "system.data.oracleclient" object {string}
[18] "system.windows.forms" object {string}
[19] "system.diagnostics" object {string}
[20] "windows" object {string}
?谢谢你的评论。好的,通过它,它是有意义的。但是,您知道我必须添加什么引用才能使用UserSettings吗?对不起,不知道。对于从某个.Net类派生的类,它可能不是.Net类名,而是任意用户名。它可以是从ConfigurationSection派生的用户定义类吗?这使得显示的代码可编译。尽管我在上面定义了设置变量,但我的设置变量是多少?他回来了。