Oh My God! i have to remove this line of code:
[assembly: AssemblyKeyName("")]
so that projectA completely forget about signing project and continue it`s easy life
as you know if the destination Assembly was signed so referenced assembly must be signed too. in fact this line of code remind compiler that this project is signed. so... the target assembly should be signed too. therefore compiler complaint about having friend assembly with no " , publicKey=..." token.