我正在處理自定義的msbuild腳本。 其中一個目標應該壓縮構建輸出。 例如着想,讓我們在這裏說的我有以下郵編內容不保留文件夾結構
<Target Name="ZipFiles">
<ItemGroup>
<Binaries Include="$(MSBuildProjectDirectory)\Folder\bin\Debug\**" />
</ItemGroup>
<MakeDir Directories="$(MSBuildProjectDirectory)\Build\Output"
Condition="!Exists('$(MSBuildProjectDirectory)\Build\Output')" />
<Zip Files="@(Binaries)"
WorkingDirectory="$(MSBuildProjectDirectory)\Build\Output\"
ZipFileName="$(MSBuildProjectDirectory)\Build\Output\MyItems.zip"
ZipLevel="9" />
</Target>
我使用**
通配符選擇是Debug
下的內容的MSBuild目標的路徑,輸出
C
-Folder
-------bin
----------Debug
。我可能有一些文件夾結構,其內容文件位於路徑下,需要保留。
因此,例如,Debug
下可能有Resources
文件夾,其中將包含一些.txt
文件。這些應該壓縮保存結構,以便最終的.zip存檔文件包含Resources
文件夾及其內容。
劇本我創建了保存完整的文件夾結構的MyItem.zip文件,所以我結束了在.zip文件下列
Folder
------bin
---------Debug
--------------Contents
我想實現的是在調試的內容.zip文件沒有保留文件夾結構直到調試(不包括)。 所以,我希望有.zip文件,結束了以下
MyItem.zip
----------Content Folders (for example Resources)
-------------------------Content Files
----------Files
是否有任何優雅的方式來做到這一點?
我寧願不使用任何自定義的PowerShell腳本,並且如果可能的話,請使用MsBuild +社區任務提供的功能。
從文檔:「工作目錄是ZIP文件的基本所有文件都會被從工作目錄親屬提出的。」聽起來像你的問題?嘗試離開工作目錄,或將其設置爲'$(MSBuildProjectDirectory)\ Folder \ bin \ Debug' – stijn
@stijn就是這種情況!謝謝,作品像魅力!你能否把它作爲答案張貼,以便我可以標記它。 – Michael