我正在处理自定义的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