我正在尝试将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
提前致谢
答案 0 :(得分:3)
像leppie所说,合并混淆的组件通常会导致问题。
另一种方法是将有问题的dll粘贴到嵌入式资源中,然后使用
从那里加载它byte [] bytes = Resources.SomeAssemblyDll;
Assembly.Load(bytes);
我们在AppDomain的程序集解析器中按需提供:
AppDomain.CurrentDomain.AssemblyResolve += new
ResolveEventHandler(CurrentDomain_AssemblyResolve);
我们测试框架正在寻找什么程序集,如果需要,从嵌入式资源加载它。
答案 1 :(得分:1)
您正在尝试合并模糊处理的程序集。机会很好,根本不会工作。