【问题标题】:Can one use InternalVisibleTo without strong-named assembly in C#?可以在 C# 中使用没有强命名程序集的 InternalVisibleTo 吗?
【发布时间】:2012-05-16 15:21:21
【问题描述】:

我在 MSDN 上找不到任何关于此的明确声明,有一些具有强名称的示例其他没有,对我来说,它似乎即使没有也应该工作,但它不工作。

谢谢

【问题讨论】:

    标签: c# unit-testing scope internal internalsvisibleto


    【解决方案1】:

    documentation 非常明确:

    当前程序集和友元程序集都必须是无符号的,或者 两者都必须使用强名称签名。如果他们签署了 强名称,InternalsVisibleToAttribute 的参数 构造函数必须包含完整的公钥以及 大会。

    请参阅this answer 了解完整公钥 含义的示例。

    【讨论】:

    • 感谢您的回答,这也是我从文档中了解到的,但由于某种原因它仍然无法正常工作。我知道完整公钥的含义,但我更愿意公开内部方法而不是在所有 DLL 中集成公钥我发现没有公钥的选项对单元测试非常有用
    • 好吧,如果您不想指定完整的公钥,那么 both 程序集必须是未签名的。是这样吗?还要注意[AssemblyKeyFile][AssemblyKeyName] 属性的存在,即使是空的,也会与[InternalsVisibleTo] 混淆,正如this answer 所揭示的那样。
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多