Заархивировать с помощью задачи msbuild

Я пытаюсь создать msbuild, который будет заархивировать пакет сборки

у меня есть эта строка в файле msbuild:

<UsingTask AssemblyFile="MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.Zip" />
<Zip Files="$(OutputFiles)" ZipFileName="output\SomeService.v$(BuildNumber).zip" />

И когда я запускаю этот msbuild, я получаю исключение:

ошибка MSB4018:

Неожиданный сбой задачи «Zip». \ R C: \ Projects \ Services \ SomeService \ DeployClassificationService.build (92,5): ошибка MSB4018: System.IO.FileNotFoundException: не удалось загрузить файл или сборку ICSharpCode.SharpZipLib, Version = 0.84.0.0, Культура = нейтральный, PublicKeyToken = 1b03e6acf1164f73 'или одна из его зависимостей. Система не может найти указанный файл. \ R

Что такое ICSharpCode? Я попытался включить его в состав msbuild fir, но это не помогло.

Спасибо, Алон


person Alon Ashkenazi    schedule 12.03.2012    source источник
comment
Загрузите этот файл и положите вместе с DLL CommunityTasks ICSharpCode.SharpZipLib.dll   -  person sll    schedule 13.03.2012


Ответы (5)


Когда вы устанавливаете MSBuild Community Tasks, вы должны найти библиотеку ICSharpCode в папке установки% ProgramFiles% \ MsBuild \ MSBuildCommunityTasks.

Вы должны использовать задачи сообщества, такие как упомянутый Anibas.
ИЛИ
Поместите библиотеку ICSharpCode в ту же папку с MSBuild.Community.Tasks.dll.

person Ludwo    schedule 13.03.2012
comment
Возможно, стоит отметить, что для более поздних читателей MSBuild Community Tasks с тех пор отошла от ICSharpCode и теперь встраивает Ionic Zip в свою собственную dll; так что это не требуется для более поздних версий (я думаю, 1.3+; но не могу найти точный журнал изменений) - person Chad; 22.01.2015

Похоже на проблему зависимости ... я думаю, что zip-задаче нужна сборка (а именно ICSharpCode.SharpZipLib), чтобы заархивировать ваши файлы. Взгляните здесь: http://www.icsharpcode.net/opensource/sharpziplib/Download.aspx или google для имени сборки самостоятельно и добавьте его в свое решение ... если вы уже сделали это, попробуйте добавить его через nuget, чтобы разрешить зависимости этой сборки

person Stephan    schedule 12.03.2012

Понятно, просто нужно включить:

<Import Project="MSBuild.Community.Tasks.Targets" />
person Alon Ashkenazi    schedule 12.03.2012

ICSharpCode здесь Вы видели этот post, если он отвечает на ваш вопрос.

person CheGueVerra    schedule 12.03.2012

Более поздняя версия задач сообщества требует наличия Ionic.Zip.Reduced.dll. Поместите это в мой каталог .build, и все будет хорошо.

person Erick Smith    schedule 07.02.2015