ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CodeGo.net> ILMerge的问题

2019-11-02 07:07:37  阅读:239  来源: 互联网

标签:ilmerge assemblies c net


我正在尝试将多个程序集合并为一个WCF服务的“代理”程序集.当前,由于我的继承方案,代理服务器的用户需要引用包含数据协定的程序集,以及我的域程序集.

我想为此使用ILMerge.特别是,ILMerge-Tasks项目看起来很有希望,尤其是在其项目主页中的这一行:

ILMerge-Tasks项目主页:

…It even includes a post-build event that merges ILMerge and the task dll so that you can use the task without ILMerge.exe being present.

这正是我想要完成的工作,但是我真的不知道如何去做.请帮忙!

其他相关(可能)信息:

>我们在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>

但是现在我得到以下错误:

The “UsingTask” task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is “public” and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with in the project file, or in the *.tasks files located in the “C:\Windows\Microsoft.NET\Framework\v4.0.30319” directory.

解决方法:

解决了.

>我没有使用上面的配置
>我没有使用ILMerge.MSBuild.Tasks.dll

这是我采取的步骤:

>在我的项目中添加了对ILMerge.exe(从Microsoft Research开始的引用)的引用
>将此PostBuild条目添加到我的MSBuild文件(.csproj)中:

    ILMerge /out:FooBar.dll Bar.dll Foo.dll

标签:ilmerge,assemblies,c,net
来源: https://codeday.me/bug/20191102/1989473.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有