2011-04-12 30 views
2

我一直在尋找SevenZipSharp創建一個自解壓zip文件。該項目頁面說,他們有一個特殊的類SevenZipSfx這樣做。不過,我已經搜索了對象瀏覽器和版本0.64的文檔,我找不到任何參考。如何使用SevenZipSharp創建SFX ZIP?

有沒有人知道這個班是否失蹤,或者是否有與我失蹤的「特殊班」有不同的含義?

+0

一般SFXs是你預先考慮到您的.zip文件的二進制'複製/ B SfxStub.exe + MyZip.zip MySfx.exe' - 也許它是一個單獨的項目/ .exe? – Rup 2011-04-12 15:39:16

+0

好吧,就像從互聯網上找到一個隨機EXE並將其附加到一個zip然後嘗試運行它聽起來一樣瘋狂,我試過了。不工作。所以雖然這個概念可能是Unpacker.exe + Data.zip。那稍微複雜一點。 – QueueHammer 2011-04-12 17:50:35

回答

3

它看起來像Sfx類不是默認生成的。 Grab the source code from Codeplex(或check out the trunk code)並將條件編譯常量SFX添加到項目設置並重建。令人討厭的是,簽名不在其源代碼控制中,因此您必須禁用程序集的代碼簽名。

或者,如果這是一個一次性的SFX那麼你可以使用在SevenZip \解壓目錄中的文件建立它自己。如果你看看SevenZipSfx soruce,你會發現它只是將從程序集資源獲取的那些文件中的一個文件加載到.7z存檔。

+0

謝謝,Rup。我創建了一個工作項目位置:http://sevenzipsharp.codeplex.com/workitem/10956 – 2012-07-03 00:44:14

+0

@Rup你可以一步一步講解如何「**添加條件編譯常數SFX到項目**」嗎? – ElektroStudios 2013-04-17 17:10:09

+0

@ElektroHacker在Solution Explorer窗格中,SevenZip(或SevenZip2010項目),單擊鼠標右鍵,選擇屬性。在生成選項卡上會出現一個字段「條件編譯符號」。挑構建配置你是從頂部,調試或發佈下拉興趣,然後追加',SFX'的「條件編譯符號」字段。如果你現在重建,那應該就夠了。如果你錯過當你建立再.SNK文件中的錯誤,你必須去簽約選項卡中的項目屬性,取消選中「程序集簽名」複選框。 – Rup 2013-04-17 17:53:34

0

此代碼的工作對我來說,配備了一個目錄中的文件中:

string destination = @"c:\my test.7z"; 
string pathToZip = @"C:\Program Files\7-Zip\7z.exe"; 
string directoryPath = @"c:\my test"; 

ProcessStartInfo p = new ProcessStartInfo(); 
p.FileName = pathToZip; 
p.Arguments = string.Format("a -mx=9 \"{0}\" \"{1}\" -sfx", destination, directoryPath); 

Process x = Process.Start(p); 

99.9%的工作

相關問題