首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ILMerge问题

ILMerge问题
EN

Stack Overflow用户
提问于 2011-09-21 15:10:18
回答 1查看 3.1K关注 0票数 3

我试图将多个程序集合并为一个,作为WCF服务的“代理”程序集。目前,由于我的继承方案,代理的用户需要引用包含数据契约的程序集以及域程序集。

我想用ILMerge来做这个。特别是,ILMerge-任务项目看起来很有希望,特别是这一行来自他们的项目主页:

ILMerge-任务项目主页:

...It甚至包括一个编译后事件,该事件合并了ILMerge和任务dll,这样您就可以在不存在ILMerge.exe的情况下使用任务。

这正是我想要完成的,但我真的不知道该如何去做。请帮帮我!

其他相关(可能)信息:

  • 我们在TFS中使用自动构建,因此没有ilmerge.exe将是一个很大的好处。

更新:

因此,我将ILMerge.MSBUild.Tasks.dll包含在我的项目中,并将以下内容添加到构建文件中(取自ilmerge项目主页):

代码语言:javascript
复制
<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.)任务在项目文件中或位于"C:\Windows\Microsoft.NET\Framework\v4.0.30319“目录中的*.tasks文件中正确声明。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 17:43:07

解决了。

  • 我做了而不是使用了上面的配置
  • 我做了而不是使用ILMerge.MSBuild.Tasks.dll

以下是我所采取的步骤:

  • 在我的项目中添加了对ILMerge.exe (来自微软研究的引用)的引用
  • 将此PostBuild条目添加到我的MSBuild文件(.csproj)中: ILMerge /out:FooBar.dll Bar.dll Foo.dll
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7502179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档