这可能真的很容易,但我很难过(而且我是 c# 的菜鸟)。我有 3 个相互引用的程序集(例如,注册委托方法的通知或调用公共方法),所有这些程序集都可以正常编译,直到我尝试使用强名称对其进行签名。然后我无法编译它们中的任何一个,因为其他两个没有强名称。我错过了什么?我已经为这三个文件创建了一个强名称文件,但不能包含 snk 并编译它们。
问问题
425 次
2 回答
4
如果您创建了一个要在所有三个上使用的 snk 文件,请选择:从项目的上下文菜单中添加现有项目。
浏览到 snk 文件,然后单击“添加”按钮旁边的箭头选择“添加为链接”。
然后在您的项目属性中确保在“签名”选项卡中选中“签署程序集”复选框,然后选择您刚刚添加到项目中的密钥文件。
这应该够了吧。
于 2010-01-14T20:41:16.660 回答
2
强命名程序集只能引用其他强命名程序集。
当您引用强名称程序集时,您期望获得某些好处,例如版本控制和命名保护。如果强名称程序集随后引用了一个没有这些好处的简单名称的程序集,则您将失去使用强名称程序集所获得的好处并恢复为 DLL 冲突。因此,强名称程序集只能引用其他强名称程序集。
引用自MSDN。
于 2010-01-14T20:41:33.963 回答