我使用Visual Stuido 2013用C#开发了Windows窗体程序。安装后,我希望exe.config文件位于AppData路径中。因为有时程序必须读写该文件,但我不希望程序必须以管理员权限执行。
当我使用安装程序项目创建安装程序时,我将“程序的主要输出”添加到应用程序文件夹中,但是我无法指定exe.config可以放在AppData路径中。
是否有某种方法可以避免管理员权限?
谢谢。
答案 0 :(得分:1)
使用System.Configuration; 使用System.IO;
Configuration config = null;
public Program()
{
string app_data = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
StreamWriter sw = new StreamWriter(app_data + "\\MyApp.exe.config", false);
sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
sw.WriteLine("<configuration>");
sw.WriteLine("</configuration>");
sw.Close();
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = app_data + "\\MyApp.exe.config";
config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
config.AppSettings.Settings.Add("Key", "Value");
config.Save();
Console.ReadLine();
}
答案 1 :(得分:0)
为什么不只是在AppData中安装应用程序?
string[] files = Directory.GetFiles(".\\");
string app_data = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\Apps\\MyApp";
Directory.CreateDirectory(app_data);
foreach (var file in files)
{
File.Copy(file, app_data + file.Substring(file.LastIndexOf("\\")) );
}