需要ILMerge提示

时间:2011-01-05 06:21:04

标签: .net asp.net ilmerge

我正在尝试将vintasoft条形码sdk与我的数据访问dll合并,并且在ilmerge之后它无法正常工作。欢迎任何想法

这是错误:

IndexOutOfRangeException: Index was outside the bounds of the array.]
2.┌.©(Byte[] param0) in :0
2.┌..cctor() in :0

[TypeInitializationException: The type initializer for '2.┌' threw an exception.]
2.┌.¥Σ() in :0
Vintasoft.Barcode.WriterSettings..cctor() in :0

[TypeInitializationException: The type initializer for 'Vintasoft.Barcode.WriterSettings' threw an exception.]
Vintasoft.Barcode.WriterSettings..ctor() in :0
Vintasoft.Barcode.BarcodeWriter..ctor() in :0
_Default.buttonGenerateBarcode_Click(Object sender, EventArgs e) in E:\ILMergeSample\WebBarcodeWriterDemo\QRBarcode.aspx.vb:27
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

提前致谢

2 个答案:

答案 0 :(得分:3)

像leppie所说,合并混淆的组件通常会导致问题。

另一种方法是将有问题的dll粘贴到嵌入式资源中,然后使用

从那里加载它
byte [] bytes = Resources.SomeAssemblyDll;
Assembly.Load(bytes);

我们在AppDomain的程序集解析器中按需提供:

AppDomain.CurrentDomain.AssemblyResolve += new 
    ResolveEventHandler(CurrentDomain_AssemblyResolve);

我们测试框架正在寻找什么程序集,如果需要,从嵌入式资源加载它。

答案 1 :(得分:1)

您正在尝试合并模糊处理的程序集。机会很好,根本不会工作。