首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对没有强名称的程序集的引用

对没有强名称的程序集的引用
EN

Stack Overflow用户
提问于 2011-06-16 19:03:28
回答 2查看 13.8K关注 0票数 12

有没有办法在没有强名称的情况下引用库?当我在引用和重新生成解决方案中添加对程序集的引用时,一切都很好,但当我从该程序集解决方案中调用类时,它不会生成。

输出表明引用的程序集应该具有强名称。最佳解决方案是什么?强命名库不可取。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-16 19:05:23

我认为您在这里遇到的问题是,您试图从中添加引用的程序集正在使用强名称进行签名,但您试图引用的程序集却没有签名。强名称程序集只能引用其他强名称程序集。

对正在引用的程序集进行签名或不对正在引用它的程序集进行签名。

只有在实际调用该类时才出现该错误的原因是,如果没有代码实际调用被引用的程序集,编译器将在编译后的输出中剥离引用。

如果你真的既不能向被引用的类添加强名称,也不能从执行引用的强名称中删除强名称(对不起,长篇大论),那么你将不得不考虑在运行时通过反射绑定类,然后通过公共基础或接口访问它-这根本不理想;或者更糟糕的是,实际上通过反射或dynamic调用它。

票数 16
EN

Stack Overflow用户

发布于 2011-06-16 19:08:00

强名称的全部意义在于,您知道要加载的dll是什么。如果引用了非强名称的内容,则不能添加强名称来您的 dll,因为可以加载任何内容来替换您想要的dll (只要名称匹配)。这完全违背了强名称所要提供的保证。

所以(其中之一):

  • 不要添加一个强名称到你的dll (对于大多数内部的事情,你只是不需要一个)
  • 或者;用反射重新构建你正在引用的dll只通过反射(yuck)

加载额外的dll

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6370753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档