2013-04-27 89 views
0

我有2個應用程序和一個config.ini文件。將config.ini嵌入exe文件

  1. 經理項目
  2. 主項目

主要項目是編譯並添加到項目經理(如資源)。 另外主項目從config.ini文件獲取設置。

從店長的項目,我可以節省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作爲資源文件,但是可以這樣做,當項目已編譯?

我該怎麼辦?

//編輯

我有計劃,是間諜(讓screenshoots,記錄鍵盤到文件等)。 在我的ManagerProject中,我有安裝監視,卸載和配置等選項。

我想做「使用我的配置創建獨立顯示器」。這個選項應該創建帶有指定設置(製作屏幕截圖,電子郵件數據等的頻率)的.exe文件,例如使用word或excel圖標。這個自定義配置的獨立exe應該在點擊後安裝監控。

但我有合併EXE和config.ini文件合併成一個文件的問題...

任何想法如何,我可以解決這個問題?

+0

回答:CodeDomProvider provider = CodeDomProvider.CreateProvider(「CSharp」); http://support.microsoft.com/kb/304655 – Kaki 2013-04-29 16:06:54

回答

0

首先爲什麼做這樣一件奇怪的事情? C#項目使用app.config來讀取更容易維護和加載的配置。

另一件事是,您始終可以使用嵌入式資源來保存配置數據。

更多信息請參見本主題: Configuration File as Embedded Resource 或這裏 How do I compile my App.config into my exe in a VS2010 C# console app?

最後我不知道,如果你想達到什麼甚至有可能。

+0

有一些像ILMerge但只適用於.dll和其他程序集。 – Kaki 2013-04-27 12:25:09

0

你說「用戶看不到config.ini」,所以如果這是唯一的原因,你想要將你的config.ini與你的exe合併,那你爲什麼不把它放進去AppData或Temp,或者你可以編碼你的配置文件並把它放在exe的旁邊,所以如果用戶打開它,那麼就無法找出它的內容。

+0

但ManagerProject的所有者可以在他的電腦上創建間諜exe文件,然後將其複製到pendrive並前往受害者的家中。 – Kaki 2013-04-27 13:20:16

+0

這是主要目標。 ManagerProject的所有者可以用word,excel圖標創建exe文件並前往受害者家中運行程序。 – Kaki 2013-04-27 13:25:28

+0

我明白了。配置文件必須是可編輯的? – gereb95 2013-04-27 14:53:59

0

如果你的exe文件位於NTFS分區,你可以把你的config.ini文件放在你的exe文件的備用流中。備用流可以用C#寫成或紅色,但您可以立即嘗試使用以下未公開的行命令。

要寫入備用流:

more < myapp.exe:configstream 
  • 用的app.config不同的是,你只會有一個文件 :

    echo some data > myapp.exe:configstream 
    

    從備用流中讀取部署

  • 與嵌入式資源的區別在於,您不需要編譯器來更改數據值