2

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

这是错误:

IndexOutOfRangeException:索引超出了数组的范围。]
2.┌.©(Byte[] param0) in :0
2.┌..cctor() 在 :0

[TypeInitializationException: '2.┌' 的类型初始化器抛出异常。]
2.┌.¥Σ() in :0
Vintasoft.Barcode.WriterSettings..cctor() in :0

[TypeInitializationException:'Vintasoft.Barcode.WriterSettings' 的类型初始化程序引发了异常。]
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(对象发送者,EventArgs e)+0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument)+110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 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(布尔 includeStagesBeforeAsyncPoint,布尔 includeStagesAfterAsyncPoint)+1565

提前致谢

4

2 回答 2

3

就像 leppie 所说,合并混淆的程序集通常会导致问题。

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

byte [] bytes = Resources.SomeAssemblyDll;
Assembly.Load(bytes);

我们在 AppDomain 的程序集解析器中按需执行此操作:

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

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

于 2011-01-11T15:01:40.163 回答
1

您正在尝试合并一个混淆程序集。机会很好,根本行不通。

于 2011-01-05T06:49:08.527 回答