我正在尝试将多个程序集合并为一个程序集,作为 WCF 服务的“代理”程序集。目前,代理的用户需要引用包含数据协定的程序集,并且由于我的继承方案,还需要引用我的域程序集。
我想为此使用 ILMerge。特别是,ILMerge-Tasks 项目看起来很有前途,尤其是他们项目主页中的这一行:
ILMerge-任务项目主页:
...它甚至包括一个合并 ILMerge 和任务 dll 的构建后事件,以便您可以在不存在 ILMerge.exe 的情况下使用该任务。
这正是我想要完成的,但我真的不知道如何去做。请帮忙!
其他相关(可能)信息:
- 我们在 TFS 中使用自动构建,因此没有伊尔合并程序礼物将是一个很大的优势
Update:
因此,我将 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.) 任务已在项目文件中或位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录中的 *.tasks 文件中正确声明。
Solved.
- I did NOT使用上面的配置
- I did NOT使用 ILMerge.MSBuild.Tasks.dll
这是我采取的步骤:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)