为什么还对 InternalsVisibleTo 引用的程序集进行了签名?

Why has an InternalsVisibleTo referenced assembly also be signed?

我有一个强命名的 C# 程序集:Strong.Named.Assembly.dll。它具有属性 InternalsVisibleTo 及其 public 键,对于另一个程序集:[assembly: InternalsVisibleTo("Another.Assembly, PublicKey=xxx")]Anoter.Assembly 尚未签名。所以我无法在 Strong.Named.Assembly 中引用 类,直到我也烧掉了 Another.Assembly

为什么不能向未签名程序集显示强命名程序集的内部结构?

看看 MSDN InternalsVisibleToAttribute Class。文档明确指出 "Both the current assembly and the friend assembly must be unsigned, or both assemblies must be signed with a strong name."

我认为原因很明显。它保证您授予内部访问权限的程序集在将来更改时无法攻击您的实现。