有没有办法引用没有强名称的库? 当我在引用中添加对程序集的引用并重建解决方案时,一切都很好,但是当我从这个程序集解决方案中调用它时,它不会构建。
输出说引用的程序集应具有强名称。什么是最好的解决方案?强大的命名库不是首选。
答案 0 :(得分:14)
我认为您遇到的问题是,您尝试添加引用的程序集是使用强名称签名的,但您尝试引用的程序集未签名。强名称程序集只能引用其他强名称程序集。
对要引用的程序集进行签名,或者不对引用它的程序集进行签名。
实际调用类时出现错误的原因是,如果没有代码实际调用引用的程序集,编译器将在编译输出中删除引用。
如果您真的不能为被引用者添加强名称,或者从进行引用的名称中移除强名称(抱歉啰嗦),那么你我们将不得不考虑在运行时通过反射绑定类,然后通过公共基础或接口访问它 - 根本不理想;甚至更糟糕的是通过反射实际调用它,或dynamic
。
答案 1 :(得分:11)
一个强有力的名字的重点是你知道什么dll被加载。如果您引用的内容不是强名称,则无法为 您的 dll添加强名称,因为可以加载任何代替您正在考虑的DLL(只要名称匹配)。这完全违背了强名称旨在提供的保证。
所以(其中之一):