我發現使用MSBuild社區任務提供的Zip任務創建zip文件可以更改(或更確切地說,刪除)正在壓縮的文件的任何文件屬性。下面是我的ATTRIB任務做一個文件夾中的DLL調用一個都只讀屬性:MSBuild社區任務的Zip任務更改文件屬性
<Attrib ReadOnly="true" Normal="true" Files="@(DLLsToReadOnly)" />
在路上,我包括在FilesToZip項目這些DLL並呼籲如下:
<Zip Files="@(FilesToZip)" WorkingDirectory="$(Directory with files)" ZipFileName="$(DropLocation)\$(Zip file name).zip" />
檢查提取的文件後,我發現沒有任何DLL具有隻讀屬性(更少,任何)。查看Zip文件夾所在的DLL文件夾,顯示DLL具有屬性R(僅用於只讀)。
在閱讀了文檔和源代碼之後,我找不到任何可以設置的屬性來告訴任務保留文件屬性。有沒有替代品可以保持文件屬性的完整性?我曾嘗試將ICSharpCode.SharpZipLib作爲社區任務源中的Zip類引用它,但到目前爲止,我一直無法從中獲益。
(我用社區任務版本1.2.0.306)