首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebAPI和ILMerge (也称为自托管单执行程序)

WebAPI和ILMerge (也称为自托管单执行程序)
EN

Stack Overflow用户
提问于 2015-04-28 08:37:28
回答 2查看 845关注 0票数 2

我尝试用Web构建一个可执行的自托管应用程序。我开始使用OWIN和katana,但最终无法合并。所以我做了一个很小的示例项目,没有OWIN和katana,只有Web。

在我的输出文件夹中,我得到了以下文件:

  • Newtonsoft.Json.dll
  • System.Net.Http.Formatting.dll
  • System.Web.Http.dll
  • System.Web.Http.SelfHost.dll

当然,控制台应用程序本身,在这种情况下:

  • WebAPI_self_hosted.exe

如果我将所有5个文件复制到不同的机器上,一切都会正常工作。

当我尝试ILMerge它们时,我会得到以下错误:

代码语言:javascript
复制
ILMerge.Merge: ERROR!!: Duplicate type 'System.Net.Http.HttpRequestMessageExtensions' found in
assembly 'System.Web.Http.SelfHost'. Do you want to use the /alllowDup option?
at ILMerging.ILMerge.MergeInAssembly(AssemblyNode a, Boolean makeNonPublic, Boolean targetAssemblyIsComVisible)
at ILMerging.ILMerge.Merge()
at ILMerging.ILMerge.Main(String[] args)

请原谅,如果这个问题没有达到堆叠溢出的标准,但是我在过去的两天(甚至是ilrepack)做了很多尝试,现在,我感谢每一个提示:-)

还请参阅这篇附有项目的文章: exists in both... with ILMerge

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-30 10:43:15

存在重复类型,因此需要配置ILMerge以正确处理它们,例如使用/allowDup选项。错误信息说明了一切。

票数 0
EN

Stack Overflow用户

发布于 2017-06-22 11:50:43

免责声明:这不是原来的答案。

对于使用MSBuild ILMerge任务(https://ilmergemsbuild.codeplex.com/)的人,要忽略重复类型,ILMerge.props文件的值应为"*“(忽略所有类型)。

代码语言:javascript
复制
<ILMergeAllowDuplicateType>*</ILMergeAllowDuplicateType>

来源:MSBuild.ILMerge.Task not allowing Duplicate Types

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29914383

复制
相关文章

相似问题

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