2009-05-07 12 views
49

Viene visualizzato il seguente errore all'avvio di un sito Asp.Net che utilizza un assembly che a sua volta utilizza il dlr e Iron Python per lo scripting.Riferimento ambiguo per ExtensionAttribute quando si utilizza Iron Python in Asp.Net

BC30560: 'ExtensionAttribute' è ambiguo nello spazio dei nomi 'System.Runtime.CompilerServices'.

Il problema sembra essere noto e c'è una soluzione alternativa nello issue tracker.

Tuttavia si dice che ...

... spero che questa soluzione non sarà necessario nella prossima release.

L'ultima versione (quella che sto utilizzando) è una versione successiva rispetto a quella menzionata nel rapporto. Ho anche provato a scaricare il file fornito nel tracker dei problemi e a sostituire quello della versione corrente, ma anche questo non funziona.

C'è una soluzione a questo oltre al download dell'origine e alla creazione manuale?

+1

Correlato: http://stackoverflow.com/questions/11025100/escape-catch-22-with-extension-attributes-in-net-2-0 –

+0

Patrik, quale versione di .net stai usando e quale versione di pitone di ferro stai usando? –

risposta

1

Il bug sembra essere stato chiuso solo a causa delle DLL allegate al report, quindi penso che la risposta sia "no, non c'è un modo migliore".

Ho chiesto sul bug perché è chiuso se il problema persiste.

+0

È chiuso perché semplicemente non siamo riusciti a trovare un modo per risolvere il problema per VB. Se ricordo bene, la soluzione alternativa è trovare un modo diverso per copiare quell'assembly aggiuntivo nella directory di output. Il problema dovrebbe verificarsi solo se si tenta di fare riferimento a esso. Inoltre, non dovremmo essere tutti su .NET 4.0+ ormai? ;) –

+0

Oops, ho appena letto di nuovo i commenti CodePlex e ora ricordo di più. La soluzione alternativa consiste nell'utilizzare la DLL collegata al problema anziché quella fornita con IronPython. Invece di contenere una copia della classe ExtensionAttribute, ha un reindirizzamento di tipo all'assembly reale, il che significa che ci dovrebbe essere solo una copia della classe se questa versione viene utilizzata. –