0

我有 2 个应用程序和一个 config.ini 文件。

  1. 经理项目
  2. 主要项目

主项目被编译并添加到管理器项目(作为资源)。主项目也正在从 config.ini 文件中获取设置。

从 Manager Project 我可以以这种方式保存 MainProject:

File.WriteAllBytes("MainProject.exe", ManagerProject.Properties.Resources.MainProject); //get MainProject exe an save it

然后我可以为 MainProject.exe 编写 config.ini:

StreamWriter sw = new StreamWriter("config.ini");
sw.WriteLine("1"); //whatever
sw.Close();

但我想将这两个文件(config.ini 和 MainProject.exe)加入一个 exe 文件。用户看不到那个 config.ini。

我正在考虑将 config.ini 添加为资源文件,但是当项目已经编译时可以这样做吗?

我该怎么做?

//编辑

我有间谍程序(制作屏幕截图,将键盘记录到文件等)。在我的 ManagerProject 中,我有安装监控、卸载和配置等选项。

我想做“使用我的配置创建独立监视器”。此选项应使用指定的设置(制作屏幕截图的频率、电子邮件数据等)创建 .exe,例如使用 word 或 excel 图标。而这个带有自定义配置的独立exe应该在点击后安装监控。

但是我在将 exe 和 config.ini 合并到一个文件时遇到了问题...

有什么想法可以解决这个问题吗?

4

3 回答 3

0

首先为什么要做这么奇怪的事情?C# 项目使用 app.config 来读取更易于维护和加载的配置。

另一件事是,您始终可以使用嵌入式资源来保存配置数据。

有关更多信息,请参阅此线程: 配置文件作为嵌入式资源 或此处 如何在 VS2010 C# 控制台应用程序中将我的 App.config 编译到我的 exe 中?

最后,我不确定您想要实现的目标是否可能。

于 2013-04-27T11:59:22.200 回答
0

如果您的 exe 在 NTFS 分区上,您可以将 config.ini 放在 exe 文件的备用流中。备用流可以用 C# 编写或红色,但您可以立即使用以下未记录的行命令尝试它。

要写入备用流:

echo some data > myapp.exe:configstream

从备用流中读取:

more < myapp.exe:configstream
  • 与 app.config 的不同之处在于您将只有一个要部署的文件
  • 与嵌入式资源的区别在于您不需要编译器来更改数据值
于 2014-05-29T23:15:36.097 回答
0

你说“用户看不到那个 config.ini。”,所以如果这是唯一的原因,你想将你的 config.ini 与你的 exe 合并,那么你为什么不把它放在 AppData 或 Temp 中,或者您可以对配置文件进行编码并将其放在 exe 旁边,因此如果用户打开它,则无法找出其中的内容。

于 2013-04-27T13:14:50.790 回答