这可能很容易,但我很难过(而且我是c#的菜鸟)。我有3个相互引用的程序集(例如,注册委托方法的通知,或者调用公共方法),所有这些程序都可以正常编译,直到我尝试使用强名称对它们进行签名。然后我无法编译其中任何一个,因为其他两个没有强名称。我错过了什么?我为这三个创建了一个强名称文件,但是不能包含snk并编译它们。
答案 0 :(得分:4)
如果您创建了一个要在其中三个上使用的snk文件,请选择: 从项目的上下文菜单中添加现有项目。
浏览到snk文件,然后点击“添加”按钮旁边的箭头选择“添加为链接”。
然后在项目属性中确保在选项卡中签名选中“签署程序集”复选框,然后选择刚刚添加到项目中的密钥文件。
这应该可以解决问题。
答案 1 :(得分:2)
强名称程序集只能引用其他强名称程序集。
当你引用强名字时 汇编,你希望得到肯定 版本和版本等的好处 命名保护。如果强名 然后程序集引用程序集 用一个简单的名字,但没有 有这些好处,你输了 你可以从使用a中获得的好处 强烈命名的集会并恢复 DLL冲突。因此,名气很大 程序集只能引用其他程序 强烈命名的集会。
引自MSDN。