C#在运行

时间:2017-03-31 13:37:29

标签: c# file

这是一个奇怪的问题,因为我对它进行了一段时间的讨论并且它并没有真正对我有用,因为程序需要重新编译,但是,因为如果有可能它会使我的程序更简单,我需要知道它有一种方法可以做到这一点。 基本上我有一个.exe程序。 该程序有一个组合框,它从.txt文件中获取其值。 编辑组合框中的值非常简单,用户只需要编辑.txt文件并重新启动程序,但我需要这样做,如果我们将.exe移动到另一台计算机,它带来了.txt,所以我将.txt添加到我的项目中。

问题: 如果需要,我需要用户编辑我的.txt文件。 如果他编辑.txt文件,则意味着我必须更新我.exe中嵌入的文件,并且根据我搜索的内容,不可能这样做。

我的想法是解决这个问题: 当程序启动时,我将.txt复制出程序,删除项目中的嵌入文件,当用户关闭我的程序时,它会复制外面的.txt在内部,就像我要再次手动将其添加到程序中一样,如果用户编辑它,如果他将.exe移动到另一台计算机,它将更新其组合框值。它给了我一些意义,这就是为什么我很好奇,看看它是否可能,如果是这样,我如何在项目运行时添加一个外部文件。

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以尝试相反的方式。

您可以添加应用程序配置文件,并且可以使用逗号分隔值维护comboBox部分appSettings内的值。在加载期间,它将从配置中获取,在关闭应用程序期间,您只需要使用更新的值更新appSettings部分。

更新配置文件的代码:

Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
config.AppSettings.Settings["comboKey"].Value = "comboValues with comma separated";
config.Save(ConfigurationSaveMode.Minimal);

当您将应用程序复制到其他系统时,您应该将app.exe.configapp.exe文件一起复制。

如果您尝试使用不同系统中的任何安装程序文件并且您将拥有用户设置,那么您还可以将Settings.setting文件与用户级范围变量一起使用。