2011-01-05 11 views
2

Ich versuche, vintasoft Barcode SDK mit meinem Datenzugriff DLL zu verschmelzen, und es funktioniert nicht nach ILMERGE. Alle Ideen sind willkommenBenötigen ILMerge Hinweis

hier ist der Fehler:

 
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 

Vielen Dank im Voraus

+1

Willkommen bei Stackoverflow Bitte lesen Sie die [FAQ] (http: // stackoverflow/faq). –

+0

Was speziell funktioniert nicht - Ihr Code, der Third Party Code? Was haben Sie versucht, das Problem zu diagnostizieren? Welche Fehlermeldungen/Ausnahmen erhalten Sie? Warum brauchst du ilmerge? Haben Sie Alternativen zum Zusammenführen versucht? - Wenn Sie Ihre Frage aktualisieren, um diese Informationen einzubeziehen, helfen Sie uns, Ihnen Antworten zu geben. –

+0

Nach dem Zusammenführen der Assemblies löst die Instanz des Barcodeschreibers eine Ausnahme aus. –

Antwort

1

Sie versuchen, eine verschleierte Montage zu verschmelzen. Die Chancen stehen gut, es wird überhaupt nicht funktionieren.

3

Wie leppie sagte, führt die Verschmelzung von verschleierten Baugruppen normalerweise zu Problemen. mit

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

Wir tun es auf Anfrage in unserer AppDomain Versammlung Resolver

Eine Alternative ist die problematische DLL in eine eingebettete Ressource zu haften, und von dort laden:

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

wo wir Testen Sie, nach welcher Assembly das Framework sucht, und laden Sie es bei Bedarf von der eingebetteten Ressource.