正如MSBuild的4.0我的生成過程的一部分,我結束了以下目錄結構:使用的MSBuild拉上了多個項目目錄
\OutDir
\ProjectA
\File1.dll
\File2.dll
\File3.exe
\ProjectB
\Subfolder1
File4.html
\File5.dll
\File6.dll
\File7.exe
\ProjectC
\File8.dll
\File9.exe
我希望能夠創造每子目錄一個zip文件\OutDir
。如果我做到以下幾點:
<ItemGroup>
<ZipSource Include="\OutDir\**.*" />
</ItemGroup>
<MSBuild.Community.Tasks.Zip
Files="@(ZipSource)"
ZipFileName="OutDir\%(ZipSource.RecursiveDir)ZippedOutput.zip"
WorkingDirectory="OutDir" />
那麼每個子文件夾遞歸地壓縮了,工作正常的項目A和項目C,但項目B兩個zip文件,它的根級別之一,其子文件夾的一個結束。
我的另一個要求是,項目的數量不受構建文件已知的,所以我不能只是創建的ItemGroup和枚舉,我想壓縮了項目。
這個任務是通過其的foreach任務容易惡性,但我怎麼能做到這一點的MSBuild,最好不訴諸自定義任務?
不幸的是從MSBuild擴展包的拉鍊任務不是與.NET 4兼容(工作正在進行中寫的替代品,但它尚未公佈)。 – 2010-08-16 23:02:19