MSBuild Community Tasksによって提供されるZipタスクを使用してzipファイルを作成すると、zipされているファイルのファイル属性が変更(または削除)されることがわかりました。これは、フォルダー内のDLLに読み取り専用属性を持たせるためのAttribタスクの呼び出しの1つです。
<Attrib ReadOnly="true" Normal="true" Files="@(DLLsToReadOnly)" />
将来的には、これらのDLLをFilesToZipアイテムに含め、次のように呼び出しました。
<Zip Files="@(FilesToZip)" WorkingDirectory="$(Directory with files)" ZipFileName="$(DropLocation)\$(Zip file name).zip" />
抽出されたファイルを調べたところ、読み取り専用属性を持っているDLLはありませんでした(ましてや、どれも)。Zipタスクがファイルを取得したDLLのあるフォルダーを調べると、DLLに属性R(読み取り専用)があることがわかりました。
ドキュメントとソースコードの両方を読んだ後、ファイル属性を保持するようにタスクに指示するために設定できるプロパティが見つかりませんでした。ファイル属性をそのまま維持するために使用できる代替手段はありますか?Community TasksソースのZipクラスがICSharpCode.SharpZipLibを参照しているので、ICSharpCode.SharpZipLibを調べてみましたが、これまでのところ、それを十分に活用することはできませんでした。
(私はコミュニティタスクバージョン1.2.0.306を使用しています)