Tempo fa ho bloggato di friend assemblies e dell'attributo InternalVisibleTo, oggi un utente mi segnala che con la Beta2 l'attributo sembra non funzionare in VB 2005, ammetto che per i test fatti in precedenza avevo usato esclusivamente C# ma la cosa mi suonava comunque strana quindi decido di fare una prova veloce usando la CTP di Agosto.
Risultato: Non funziona piu' nulla... ne in VB tantomeno in C#...
Convinto di essere in preda all'ennesimo attacco di arteriosclerosi fulminante, mi affido a San Google e cosa scopro in questo blog? (BTW: W i blog!)
“Post beta2 one more restriction is added.
Only name + publicKey combination is allowed. publicKeyToken is not allowed in friend assembly declaration.“
Sostituendo il publicKeyToken con questa “breve“ alternativa, tutto riprende a funzionare...
[assembly: InternalsVisibleTo("FriendAssemblyA_CS, PublicKey=0024000004800000940000000602000000240000525341310004000001000100E13F950B9FB563AB80CD4BB67C7A8E3E269FC6B82A83335234600FC88624EEF06D5EAFF8BA8E2E54EDA1F06B3FC3A9D0D629C01DCBB59CF331F7AF8B96E8B8C05283FB8E5A8ADBF3E9EEEB754CBDBC08C877CE3B3E93EBD5BAF835AF01D3E690EC9DC7439664EFD33FB0F3863CAD67AC84244DFBE7BD40F1D32BEB88EF9C12B1")]
Ovviamente questo 'dettaglio' non e' citato nella documentazione...
Insomma, a quanto pare tra la Beta2 e la RTM ci sono parecchie differenze (ne ho beccate alcune anche in System.Configuration...)
BTW: A parte dovere importare System.Runtime.CompilerServices il tutto funziona anche in VB 2005.