この質問はもともと「構成ファイルの読み込み中にエラーが発生しました: パス c:\Program Files (x86)\… へのアクセスが拒否されました」として投稿されましたが、解決策を見つけることにあまり成功しませんでした。
私のアプリケーションは Windows 7 で作成されました。これは、Visual Studio 2010 で作成された 32 ビット アプリケーションです。このアプリケーションを Windows 8 システムにデプロイしようとすると、form_Load 中にアプリが失敗し、 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 です。