GetEntryAssembly ritorna null...come evitarlo?

venerdì 13 aprile 2012 - 10.47
Tag Elenco Tags  C#  |  VB.NET  |  .NET 4.0

lukepet Profilo | Junior Member

Vi spiego il mio problema...

Ho un'applicazione WPF che utilizza una libreria di terzi per svolgere una specifica operazione e tale libreria in uno dei suoi metodi esegue l'istruzione Assembly.GetEntryAssembly().

Il mio problema è questo, se eseguo l'applicazione WPF in debug (lanciando un apposito exe .NET di prova) la libreria funziona correttamente e l'istruzione Assembly.GetEntryAssembly() ritorna il riferimento all'assembly dell'eseguibile, ma in produzione ho una situazione diversa che mi crea qualche problemino.

In produzione l'applicazione WPF è integrata con un'applicazione VB6 ed i programmi vengono lanciati da un menu scritto in VB6 sfruttando l'InteropFormLibrary; in questa situazione la libreria va in eccezione perchè l'istruzione Assembly.GetEntryAssembly() ritorna "null" in quanto non riesce a trovare l'assembly associato all'eseguibile. Il mio problema è che non posso modificare il codice della libreria perchè non ho i sorgenti a disposizione ed ho individuato l'istruzione che genera l'eccezione decompilando la dll ed analizzando il metodo che andava in eccezione.

A questo punto la mia domanda è: esiste qualche modo per far in modo che il metodo "GetEntryAssembly" non ritorni "null"? Posso assegnarlo o "eluderlo" in qualche modo?

Vi rigrazio in anticipo per ogni informazione a riguardo.

luigidibiasi Profilo | Guru

quando scrivi
>ed ho individuato l'istruzione che genera l'eccezione decompilando
>la dll ed analizzando il metodo che andava in eccezione.
indichi l'utilizzo de ILDASM per decompilare l'eseguibile .net?


Luigi Di Biasi


http://www.dibiasi.it/
http://netsell.dibiasi.it - ecomm software -
http://blogs.dotnethell.it/luigidibiasi/
http://yadamp.unisa.it/ - YADAMP CMS -

lukepet Profilo | Junior Member

In realtà l'ho visto utilizzando dotPeak (il decompiler della jetbrains).

Poi ho fatto anche alcuni esperimenti decompilando e ricompilando la ddl con i comandi "ildasm" e "ilasm" e alla fine con qualche accorgimento sembrava anche funzionare (ma era comunque una soluzione poco sicura e temporanea); attualmente ho richiesto la modifica direttamente agli sviluppatori della libreria e sto aspettando una risposta.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5