如何防止我的.Net dll被添加为参考?

Leo*_*tin 4 .net security dll visual-studio

假设我写了一个.Net dll,并想用我的应用程序分发它.如何通过向自己的应用程序添加对此dll的引用来阻止任何具有精明的用户安装VS的副本?

Jar*_*Par 8

无法阻止用户添加引用.这是你的DLL部分的被动行为,你无法阻止它发生.

但你可以做的是,添加一个参考是一个非有价值的操作.例如,如果DLL中的所有类型都是内部的或私有的,则不仅仅是为用户添加引用以使用DLL中的类型.此外,混淆DLL将使其更难.


adr*_*nks 5

您无法阻止某人添加对您的dll的引用.然而,你可以做的是,如果他们确实添加了参考,他们很难使用它.

代码访问安全性(CAS)可用于防止未经授权的代码调用程序集,但这会对调用的性能产生影响,并且为此目的而言是过度的.

另一种方法是将dll中的所有内容标记为内部.如果您有其他程序集需要访问dll中的类,请使用InteralsVisibleTo属性将它们设为好友程序集.这允许其他程序集访问您的dll的内部类.将它与已签名的程序集结合在一起(与InternalsVisibleTo定义一起使用),它就足够了.