这个问题最初发布为“加载配置文件时出错:访问路径 c:\Program Files (x86)\... denied”,但我没有成功找到解决方案。
我的应用程序是在 Windows 7 上编写的,它是使用 Visual Studio 2010 编写的 32 位应用程序。当我尝试在 Windows 8 系统上部署此应用程序时,应用程序在 form_Load 期间失败,并出现关于访问 tmp 文件的错误EXE 的目录。我不是直接创建这个临时文件,但它的名称与 C# GetTempFileName 方法生成的名称一致。错误消息中还引用了 EXE 配置文件 (MyApp.exe.config) 的名称。
我使用 ConfigurationManager 在启动时存储我的所有应用程序设置,所以我猜测它与此有关。如果我在 Windows 8 系统上构建应用程序,它在 Windows 8 系统上运行良好,但如果部署在 Windows 7 系统上,则会产生相同的错误。我还不知道究竟是哪一行代码导致了错误,但调用归结为
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Add(settingName, settingValue);
config.Save();
ConfigurationManager.RefreshSection("appSettings");
Windows 7 和 8 系统都是 64 位的,但应用程序是 32 位的。在此先感谢您提供解决此问题的任何建议。
我使用 Settings 类来处理配置数据,而 TEMP 变量就是我所期望的,我的 user\AppSettings\Local\Temp。