Я пытаюсь объединить несколько сборок в одну сборку «Прокси» для службы WCF. В настоящее время пользователям Прокси необходимо ссылаться на сборку, содержащую контракты данных, а также на сборку моего домена из-за моих схем наследования.
Я бы хотел использовать для этого ILMerge. В частности, проект ILMerge-Tasks выглядит многообещающе, особенно эта линия из дома проекта:
Проект ILMerge-Tasks Главная:
... Он даже включает событие после сборки, которое объединяет ILMerge и dll задачи, так что вы можете использовать задачу без ILMerge.exe.
Это именно то, чего я хотел бы достичь, но я действительно не знаю, как это сделать. Пожалуйста, помогите!
Другая соответствующая (возможно) информация:
- Мы используем автоматические сборки в TFS, поэтому отсутствие ilmerge.exe в подарок будет большим плюсом
Обновление:
Поэтому я включил ILMerge.MSBUild.Tasks.dll в свой проект и добавил следующее в файл сборки (взят из домашней страницы проекта ilmerge):
<Target Name="AfterBuild">
<UsingTask TaskName="ILMerge.MSBuild.Tasks.ILMerge"
AssemblyFile="ILMerge.MSBuild.Tasks.ILMerge"/>
<ItemGroup>
<MergeAsm Include="BarProject.dll" />
<MergeAsm Include="FooProject.dll" />
</ItemGroup>
<ILMerge InputAssemblies="@(MergeAsm)" OutputFile="FooBar.dll" />
</Target>
Но теперь я получаю следующую ошибку:
Задача «UsingTask» не найдена. Проверьте следующее: 1.) Имя задачи в файле проекта совпадает с именем класса задачи. 2.) Класс задачи является «открытым» и реализует интерфейс Microsoft.Build.Framework.ITask. 3.) Задача правильно объявлена в файле проекта или в файлах * .tasks, расположенных в каталоге «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319».