这可能是一个非常基本的问题,但我无法找到有关该主题的任何答案。我有一个项目,它引用了几个在 Visual Studio 2008 中编写的类库 dll。安装文件安装得非常好,并将 dll 放在适当的位置。然而,似乎任何一个 dll 都可以被安装了安装项目的任何人使用。例如,如果我有一个执行许多专有功能的 dll,我如何防止某人简单地获取已安装的 dll、在他们自己的项目中引用它并使用可用的功能?
我认为这是一个简单的解决方法,但我是该主题的初学者。
这可能是一个非常基本的问题,但我无法找到有关该主题的任何答案。我有一个项目,它引用了几个在 Visual Studio 2008 中编写的类库 dll。安装文件安装得非常好,并将 dll 放在适当的位置。然而,似乎任何一个 dll 都可以被安装了安装项目的任何人使用。例如,如果我有一个执行许多专有功能的 dll,我如何防止某人简单地获取已安装的 dll、在他们自己的项目中引用它并使用可用的功能?
我认为这是一个简单的解决方法,但我是该主题的初学者。
不,没有办法阻止这种情况(除了晦涩难懂 - 没有人知道您的 DLL 的 API 是如何使用的)。你所能做的就是给你的 API 函数起一个不起眼的名字。
您可以做到这一点的一种方法是在您的 dll 中放置一些静态令牌,该令牌充当项目之间的私钥,如果未设置此密钥,则不会执行任何方法。此私有令牌将由您的入口点添加。不幸的是,这意味着您必须在每个公共方法调用上检查令牌。
可能做到这一点的唯一方法是在可执行文件中包含当前在 DLL 中的所有函数,并将修饰符设置为私有。