我决定使用MSBuild Extension的Zip任务在每次构建时压缩我的一些源代码。
然而,这不起作用:
<UsingTask TaskName="MSBuild.ExtensionPack.Compression.Zip" AssemblyFile="MSBuild.ExtensionPack.dll" />
<Target Name="AfterBuild">
<CallTarget Targets="ZipSourceFiles" />
</Target>
<Target Name="ZipSourceFiles" Condition="'$(ConfigTransform)'=='ImRunningOnTheServer'">
<MSBuild.ExtensionPack.Compression.Zip TaskAction="Create" CompressFiles="c:\source.txt" ZipFileName="C:\target.zip"/>
</Target>
我收到以下错误消息:
找不到“MSBuild.ExtensionPack.Compression.Zip”任务。请检查以下内容:1。)项目文件中任务的名称与任务类的名称相同。 2.)任务类是“public”并实现Microsoft.Build.Framework.ITask接口。 3.)在项目文件或位于“c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319”目录中的* .tasks文件中正确声明了任务。
我不知道导致此错误的原因是什么?有什么想法吗?
答案 0 :(得分:33)
<Import Project="lib\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<Target Name="Zip">
<CreateItem Include="YourSourceFolder\*.*" >
<Output ItemName="ZipFiles" TaskParameter="Include"/>
</CreateItem>
<Zip ZipFileName="YourZipFile.zip" WorkingDirectory="YourSourceFolder" Files="@(ZipFiles)" />
</Target>
如果您需要更多示例,请参阅我的某个项目中的here is a complete working MSBuild file。
答案 1 :(得分:7)
这是MSBuild Community Tasks的替代方案。如果您使用的是.net 4.5.1,则可以将System.IO.Compression函数嵌入UsingTask。此示例使用ZipFile.CreateFromDirectory。
0s