不允许IL MergeGUI未解析的程序集引用

问题描述 投票:1回答:1

我遇到了一个问题。我连续3天都无法解决问题。该项目需要报告,所以我把注意力转向NuGet Microsoft.Reporting.WinForms.v11。通过将其添加到项目中,我无法再在一个exe中收集所有dll库。 IL Merge显示错误。

帮忙,谢谢。

IL MergeGUI error

记录IL MergeGUI

将2个Win32资源从程序集“AtlantCRM”复制到目标程序集中。将入口点'AtlantCRM.Program.Main'从装配'AtlantCRM'转移到装配'AtlantCRM'。目标程序集的元数据中未报告任何错误。 ILMerge:编写目标程序集'C:\ Users \ return name \ Desktop \ AtlantCRM.exe'。 AssemblyResolver:程序集“AtlantCRM”引用程序集“PresentationFramework”。 AssemblyResolver:尝试引用程序集的目录。 AssemblyResolver:在引用程序集的目录中找不到程序集。 AssemblyResolver:尝试输入目录。 AssemblyResolver:未在输入目录中找到程序集。 AssemblyResolver:尝试用户提供的目录。 AssemblyResolver:没有用户提供的目录。 AssemblyResolver:尝试框架目录。 AssemblyResolver:在框架目录中找不到程序集。 AssemblyResolver:无法解析引用。 (它仍然可以在例如GAC中找到。)AssemblyResolver:程序集'PresentationFramework'引用程序集'PresentationCore'。 AssemblyResolver:尝试引用程序集的目录。 AssemblyResolver:在引用程序集的目录中找不到程序集。 AssemblyResolver:尝试输入目录。 AssemblyResolver:未在输入目录中找到程序集。 AssemblyResolver:尝试用户提供的目录。 AssemblyResolver:没有用户提供的目录。 AssemblyResolver:尝试框架目录。 AssemblyResolver:在框架目录中找不到程序集。 AssemblyResolver:无法解析引用。 (它仍然可以在例如GAC中找到。)AssemblyResolver:程序集'PresentationCore'引用程序集'WindowsBase'。 AssemblyResolver:尝试引用程序集的目录。 AssemblyResolver:在引用程序集的目录中找不到程序集。 AssemblyResolver:尝试输入目录。 AssemblyResolver:未在输入目录中找到程序集。 AssemblyResolver:尝试用户提供的目录。 AssemblyResolver:没有用户提供的目录。 AssemblyResolver:尝试框架目录。 AssemblyResolver:在框架目录中找不到程序集。 AssemblyResolver:无法解析引用。 (它仍然可以在例如GAC中找到。)AssemblyResolver:程序集'PresentationFramework'引用程序集'System.Xaml'。 AssemblyResolver:尝试引用程序集的目录。 AssemblyResolver:在引用程序集的目录中找不到程序集。 AssemblyResolver:尝试输入目录。 AssemblyResolver:未在输入目录中找到程序集。 AssemblyResolver:尝试用户提供的目录。 AssemblyResolver:没有用户提供的目录。 AssemblyResolver:尝试框架目录。解决了程序集引用'System.Xaml'到'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ System.Xaml.dll'。 (使用的框架目录。)AssemblyResolver:程序集'Bunifu_UI_v1.5.4'引用程序集'System.Management'。 AssemblyResolver:尝试引用程序集的目录。 AssemblyResolver:在引用程序集的目录中找不到程序集。 AssemblyResolver:尝试输入目录。 AssemblyResolver:未在输入目录中找到程序集。 AssemblyResolver:尝试用户提供的目录。 AssemblyResolver:没有用户提供的目录。 AssemblyResolver:尝试框架目录。已将已解决的程序集引用“System.Management”解析为“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ System.Management.dll”。 (使用的框架目录。)AssemblyResolver:程序集“System.Xml”引用程序集“System.Data.SqlXml”。 AssemblyResolver:尝试引用程序集的目录。解决了程序集引用'System.Data.SqlXml'到'C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ System.Data.SqlXml.dll'。 (使用引用模块的目录。)AssemblyResolver:程序集“System.Data”引用程序集“System.EnterpriseServices”。 AssemblyResolver:尝试引用程序集的目录。已将已解决的程序集引用“System.EnterpriseServices”解析为“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ System.EnterpriseServices.dll”。 (使用引用模块的目录。)

c# reporting ilmerge
1个回答
1
投票

你可能不想听到这个,但是ilmergeGUI已经过时了。 .net 4.6真的打破了它,自那以后它变得更糟。我强烈建议使用CMD进行编译。您将对合并的内容有更多的控制和理解。

编辑:抱歉不包括该链接。可以找到Ilmerge文档here。第1节和第2节是关于如何在代码中使用它,但第3节是我所指的。

说明:

打开一个Command Prompt

如果您没有在Windows中设置路径来查找ilmerge命令,则可能需要在每次打开命令提示符时设置路径(假设您的安装位置是典型位置):

SET PATH=%PATH%;C:\Program Files (x86)\Microsoft\ILMerge

然后你只需按照我上面链接的文档运行你的ilmerge命令。

例:

ilmerge /targetplatform:v4,"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1" /out:"C:\Users\my\Documents\VerificationsMerged.dll" Verifications.dll Newtonsoft.Json.dll

此示例使用.netframework版本4.6.1,但您可以将其指向其他版本,然后将Verifications.dll和Newtonsoft.Json.dll合并在一起(请注意这些假设位于命令提示符的当前文件夹中,您可以改为提供绝对路径)并将VerificationsMerged.dll保存到我的文档文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.