.net - ILMerge.Merge : ERROR! !: 程序集中发现重复类型

标签 .net .net-4.5 post-build-event ilmerge

我会尽可能简单地说明这一点,如果您需要更多信息,请告诉我。我下载了ILMerge合并Newtonsoft.Json.dll进入我的类(class)图书馆。我使用以下命令从构建后事件命令行调用 ILMerge:

"$(ProjectDir)bin\ILMerge.exe" /internalize:"$(ProjectDir)bin\ILMergeIncludes.txt" /out:"$(TargetDir)$(TargetName).all.dll" "$(TargetDir)$(TargetName).dll" "$(TargetDir)*.dll" /target:library /targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319 /wildcards

在输出窗口中显示:

An exception occurred during merging:
  ILMerge.Merge: ERROR!!: Duplicate type 'myLibrary.some.class' found in assembly 'myLibrary.all'. 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)

问题是“myLibrary.some.class”不是重复的。

我一直在互联网上寻找线索,我发现的只是以下两个链接,以及一些网络应用程序的案例,人们复制/粘贴页面并忘记更改类名称。

similar problem with a solution that doesn't seem relevant

same cry for help but with no answers

我尝试使用allowDup选项,但在合并的dll中,它将“myLibrary.some.class”变成“myLibrary.some.random125624.class”。然后我尝试使用allowDup传入“class”,但随后我收到“class2”的“重复类型”错误,然后是“class3”,然后是“class4”...重复类型的数量似乎没有尽头!

我确信这些类不会重复,因为命名空间对于我的公司和项目来说是非常特定的。

有人可以帮忙吗?

最佳答案

在命令行中告诉 ILMerge 使用一个库 tiwce
ILMerge 使用 "$(TargetDir)*.dll"/wildcards 获取 TargetDir 中的所有 dll 文件,并再次添加文件 "$(TargetDir)$(TargetName).dll"

所以解决办法很简单。尝试以下命令行:
"$(ProjectDir)bin\ILMerge.exe"/internalize:"$(ProjectDir)bin\ILMergeIncludes.txt"/out:"$(TargetDir)$(TargetName).all .dll""$(TargetDir)*.dll"/target:library/targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319/通配符

关于.net - ILMerge.Merge : ERROR! !: 程序集中发现重复类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277994/

相关文章:

c# - 来自异步序列化操作的 MissingMethodException

c# - 如何在C#中将可选参数的OptionalAttribute设置为当前目录?

.net - 如何在 Visual Studio 的生成后事件中获取解决方案目录的动态路径

objective-c - 自动复制 .app 到 Applications 文件夹

macros - 如何在构建后事件中使用宏区分 TFS 构建和手动构建

c# - C# (.Net) 是否区分信号 NaN 和静默 NaN?

c# - GCHandle.FromIntPointer 没有按预期工作

.net - 为什么“添加引用”中未列出 System.Web.Mvc?

c# - 如何使用枚举进行版本控制

c# - 如何在 Fluent 验证中根据字符串列表验证字符串?