app.configファイルを使用して、いくつかのパラメータ(SQL Serverインスタンス名、ユーザー、パスワード、ログディレクトリなど)を保存して読み込みます。さて、私はbin/releaseディレクトリから.exeを実行する場合に限り、ユーザーに依存してこれを管理するいくつかのパラメータを変更する必要があります。 セットアップを作成してアプリケーションをインストールすると、このパラメータを変更できません - TargetInvocationExceptionがスローされます。私は管理者としてアプリを実行しようとしましたが、成功しませんでした。実行時にapp.configを変更すると例外が発生する
私が現在使用しているコードは以下の通りです:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("username");
config.AppSettings.Settings.Add("username", this.Config.Username);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
私はstackoverflowのではなく、成功せずに見つかったいくつかの他のソリューションを試してみた...
このコードを実行すると、this.Config.Usernameの値は何ですか? – MethodMan
これはかなり古典的なUACトラップです。開発マシンでプログラムをデバッグするときにファイルを変更できますが、インストール後は機能しません。 'c:\ program files'のファイルは書き込み可能ではありません。ファイルを編集する別のプログラムが必要になりますので、UACの高度を尋ねることができます。または、この情報を保存するための設定を使用しないでください。AppDataの.xmlファイルも機能します。 –
@DJKRAZEのユーザー名の値が有効です。読むことができます。 – davor