【发布时间】:2012-08-16 17:44:08
【问题描述】:
我想在我的项目中引用两个 dll。它们是 A.dll 和 B.dll。 B.dll 引用了 A.dll。他们没有强大的名字。我的项目 C 需要签署强名称。所以我需要为 A.dll 和 B.dll 签署强名称。之后,我遇到了一个问题 - 我无法编译成功,B.dll 的代码无法转换为 A.dll 中的类型包含。 我知道为什么会这样。我对 A.dll 和 B.dll 都签署了强名称,但 B.dll 仍然引用没有强名称的 A.dll。 所以我的问题是,如何为 B.dll 和 B.dll 引用 A.dll 签署强名称。不仅引用 B.dll 或 A.dll。 这是项目和错误消息:
【问题讨论】:
-
A:你真的需要签署C吗?如果是这样:为什么? ... 和 B:你可以访问 A 和 B 吗?也就是说,你能重建它们吗?
-
是的,我真的需要签署 C。这是要求。我无权访问A和B。如果可以,我可以按照你说的,重建它们,然后我的问题就解决了。
-
是的,但签名是身份的一部分。如果换了身份。你很可能会破坏 A 和 B 之间的关系......
-
那么,这个问题没有解决办法吗?
-
如果程序集被标记为延迟签名,那么您可以使用 sn.exe 对其进行签名....否则,如果它未标记为延迟签名并且您没有 A 和 B 的来源,那么您可以这样做:ryanfarley.com/blog/archive/2010/04/23/… ... buffered.io/posts/…
标签: .net compilation strongname