用户的输入保存在应用程序的配置文件中,因为每次重启时软件都需要使用此输入:
public void setAppSetting(string key, string value)
{
//Laden der AppSettings
Configuration config = ConfigurationManager.
OpenExeConfiguration(
System.Reflection.Assembly.
GetExecutingAssembly().Location);
if (config.AppSettings.Settings[key] != null)
{
config.AppSettings.Settings.Remove(key);
}
config.AppSettings.Settings.Add(key, value);
config.Save(ConfigurationSaveMode.Modified);
}
public string getAppSetting(string key)
{
Configuration config = ConfigurationManager.
OpenExeConfiguration(
System.Reflection.Assembly.
GetExecutingAssembly().Location);
return config.AppSettings.Settings[key].Value;
}
加载应用设置:
private void Start_Closed(object sender, EventArgs e)
{
setAppSetting("benutzerEingabe", textBoxPath.Text);
setAppSetting("benutzerEingabe", userConfigurePath);
}
因此,当用户解压缩存在exe文件的zip文件时,存在没有内容的内容文件。所以我想要它。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>
第一次使用应用程序后,配置中包含密钥:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="benutzerEingabe" />
</appSettings>
</configuration>
对我来说,问题是当用户将exe复制到其他地方并且第一次启动此应用程序时会有新的配置文件。这就是问题所在。是否有可能在exe文件中实现配置文件,以便此文件不会自行创建。或者还有其他解决方案吗?
答案 0 :(得分:1)
您需要的是安装程序exe或msi package
。您可以通过在visual studio中创建msi项目来完成此操作。使用此方法而不是提供exe文件,您将为我提供MSI文件。因此,在安装msi时,您可以以自动放置配置文件的方式捆绑您的exe。您还可以使此安装程序在用户计算机上创建文件夹等。非常有用。
http://www.codeproject.com/Articles/568476/Creating-an-MSI-Package-for-Csharp-Windows-Applica
答案 1 :(得分:1)
最好在公共位置创建文件,每次检查公共位置是否存在文件,如果存在则读/写值,否则创建文件
您可以使用 XML 文件或 ini 文件来保存数据。所以,如果你改变exe位置,它不会影响你的执行。
你可以使用
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
作为您的常用文件夹。
答案 2 :(得分:0)
您可以使用ConfigurationManager.OpenExeConfiguration
here有一个很好的例子:它保留了移动设置。
答案 3 :(得分:0)
你可以直接使用c#中的设置来制作这些东西。 http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx