2009-12-21 49 views
4

我知道有一個similar question但標誌着答案提供了一個鏈接,這需要幾個依賴於在用戶的計算機上安裝一個外部庫。C#/。NET:創建一個CAB和將文件添加到它無需外部庫

我不需要提取或其他任何花哨的像上市文件 - 我只需要一個文件夾中的所有內容添加到一個CAB文件。我知道cabinet.dll存在於\ Windows \ System32文件夾中,我希望有一個簡單的方法來與此DLL進行交互以實現我正在嘗試做的事情。

是否可以在沒有外部庫的情況下執行此操作?如果任何人都可以指引我正確的方向,我會永遠感激。

回答

8

你可以看看WiX和更具體的Microsoft.Deployment.Compression.Cab組裝。它有一個很好的API,允許你這樣做:

CabInfo cab = new CabInfo(@"c:\Work\some.cab"); 
cab.Pack(@"C:\Work\folder"); 

這取決於Microsoft.Deployment.Compression組件,它是獨立的,所以你只需要這兩個組件。

+0

我看了一下WiX的,但因爲我使用VS2010 Beta 2中,我希望可以出貨的東西,並不需要安裝相關性,如維克斯它不會安裝。 – 2009-12-21 15:25:53

+0

只需提取我使用LessMSIerables(http://blogs.pingpoet.com/overflow/archive/2005/06/02/2449.aspx)從MSI中提到的兩個程序集並僅將它們發送出去。 – 2009-12-21 15:34:25

+0

...你不需要安裝WiX。 – 2009-12-21 15:35:14