我有2个应用程序和一个config.ini文件。
主项目已编译并添加到Manager项目(作为资源)。 主项目也从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中,我有安装监控,卸载和配置等选项。
我想做“使用我的配置创建Standlone Monitor”。此选项应使用指定的设置(制作屏幕截图,电子邮件数据等的频率)创建.exe,例如使用word或excel图标。这个带有自定义配置的standlone exe应该只需在点击后安装监控。
但我将merge exe和config.ini合并到一个文件中有问题......
我有什么想法可以解决这个问题吗?
答案 0 :(得分:0)
首先为什么要做这么奇怪的事情? C#Projects使用app.config来读取更容易维护和加载的配置。
另一方面,您始终可以使用嵌入式资源来保存配置数据。
有关详细信息,请参阅此主题: Configuration File as Embedded Resource 或者在这里 How do I compile my App.config into my exe in a VS2010 C# console app?
最后,我不确定你想达到的目标是否可行。
答案 1 :(得分:0)
你说“用户无法看到config.ini。”,所以如果这是唯一的原因,你想将你的config.ini与你的exe合并,那你为什么不把它放在AppData或Temp,或者您可以对配置文件进行编码并将其放在exe旁边,因此如果用户打开它,则无法找到其中的内容。
答案 2 :(得分:0)
如果您的exe是在NTFS分区上,您可以将config.ini放在exe文件的备用流中。可以使用C#写入备用流或红色,但您可以立即使用以下未记录的行命令进行尝试。
要写入备用流:
echo some data > myapp.exe:configstream
从备用流中读取:
more < myapp.exe:configstream