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

时间:2009-07-21 21:58:30

标签: .net visual-studio security dll

说我写了一个.Net dll,并希望用我的应用程序分发它。如何防止任何精明的用户安装VS的副本,将此dll的引用添加到他们自己的应用程序中?

6 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:5)

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

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

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

答案 2 :(得分:2)

答案 3 :(得分:1)

我严重怀疑这是可能的。即使是这样,一个全力推进的集会也可以伪装所有证据并假装成你的计划。

答案 4 :(得分:1)

尽管.NET不允许真正的静态链接,但您可以伪造它,将dll和exe打包到一个程序集中。这是一个可以执行此操作的工具: ILMerge 可能还有其他人。

答案 5 :(得分:0)

您可以对DLL(工具 - > Dotfuscator社区版)进行模糊处理,使其无法引用您的DLL。