根据 msdn 社交论坛的建议, http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/ab59671a-f0a3-4182-ba5b-7fa17f0a6118?prof=required
我关闭了 Visual Studio 托管进程,并验证了当仍在调试配置下运行时,更改是否保存到 MyApp.exe.config 文件而不是 MyApp.vhost.exe.config 文件。但是,当我将具有发布配置的应用程序部署到 C:\UAT\MyApp\时,它不会将更改保存到 C:\UAT\MyApp\Application Files\MyAPP_1_0_0_0\MyApp.exe.config 文件。我检查了文件权限并确保未检查 MyApp.exe.config 文件的 ReadOnly。
此外,我还尝试了SaveAs(persist\MyApp_yyyymmdd.config)。在 Visual Studio 2008 中以 Debug模式运行时(虚拟主机关闭),它会在 bin/Debug 下创建“persist”文件夹并将文件保存在那里。但是,C:\UAT\MyApp\中的部署版本不会创建此类文件夹。我确保 C:\UAT 下的所有文件夹都没有设置为只读。
我正在使用 Visual Studio 2008。感谢对此的任何帮助。
跟进: 在部署应用程序之前,我还确保将“项目属性”中的“安全性”设置为“这是一个完全信任的应用程序”。
最佳答案
用户设置的值通常保存到用户个人资料中的“user.config”
中,尤其是对于已发布的应用。 exe.config 并不是真正要在运行时编辑的,因为它又回到了安装(受系统保护)与文档(用户)问题,特别是对于非管理员而言。
检查位置,例如:
{user profile}\AppData\Local{appname}\{appname}.exe_{gibberish}\user.config
关于c# - .Net 3.5 中的 Configuration.Save() 在部署/ Release模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1518294/