在我的应用程序中,我有一个带有 IP 地址 / 登录名 / 密码 / 记住我检查器的简单登录页面。当我检查记住我时,应用程序会将这些数据存储在以下文件中:C:\Users\user\AppData\Local\...
在我的应用程序中,我有一个带有 IP 地址/登录名/密码/记住我检查器的简易登录页面。
当我检查记住我时,应用程序将这些数据存储在以下文件中:C:\Users\user\AppData\Local\App\App.exe_Url_5b4qolbj3ip4ltms1ohyh4cdivud5wfg\1.0.0.0\user.config
这对我来说完全没问题,但问题是(我不知道为什么会发生这种情况)当我构建 SetupWizard.msi 时,此 user.config 是由应用程序文件夹中的应用程序创建的。
然后,当我执行程序并选中“记住我”框时,它不会将值存储在此应用程序创建的 user.config 中,但仍存储在 AppData 文件中。
有什么方法可以删除应用程序文件夹中的 user.config 并将其仅存储在 AppData 中吗?主要原因是此配置文件(由安装创建)有两个扩展名:App.exe.config。我不可能在发布时将其保留为那样。
保存代码
public void Save_data()
{
if (CheckBoxRemCredts.IsChecked == true)
{
Properties.Settings.Default.userName = txtBoxLogin.Text;
Variable.passEncrypted = (Encrypt(pswBox.Password));
// MessageBox.Show(Variable.passEncrypted); Debugging
Properties.Settings.Default.userPass = Variable.passEncrypted;
Properties.Settings.Default.ipAddress = txtBoxIP.Text;
Properties.Settings.Default.Remme = "yes";
Properties.Settings.Default.Save();
}
else
{
Properties.Settings.Default.userName = txtBoxLogin.Text;
Properties.Settings.Default.userPass = pswBox.Password;
Properties.Settings.Default.ipAddress = txtBoxIP.Text;
Properties.Settings.Default.Remme = "no";
Properties.Settings.Default.Reset();
}
}
设置.settings 文件:
namespace SMS_Vrána.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string userPass {
get {
return ((string)(this["userPass"]));
}
set {
this["userPass"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Remme {
get {
return ((string)(this["Remme"]));
}
set {
this["Remme"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ipAddress {
get {
return ((string)(this["ipAddress"]));
}
set {
this["ipAddress"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string userName {
get {
return ((string)(this["userName"]));
}
set {
this["userName"] = value;
}
}
}
}
有什么方法可以删除应用程序文件夹中的 user.config 并将其仅存储在 AppData 中吗?主要原因是此(由安装创建)配置文件有两个扩展名:App.exe.config。
.NET 设置的工作原理如下。 user.config
如果您有用户级设置,则应用程序需要该文件; app.config
如果您有应用级设置,则应用程序需要该文件。当应用程序创建新的用户设置文件时,它会将文件 user.config
从安装文件夹复制到该 AppData\Local\
文件夹。同样,当它创建文件时 {APPNAME}.exe.config
,它会复制安装文件夹中的文件。
简而言之,没有理由删除(但有很多理由保留) user.config
应用程序安装文件夹中的文件。