Software Protection是一个古老而广泛的话题。目前的技术状况是,保护软件不可能100%可靠。迟早,有人会破解它,给予足够的曝光和/或兴趣。
尽管如此,很多人和公司保护自己的软件产品,并有许多的方式来这(不是100%可靠不过)。
从您的问题中不清楚您的要求是什么。根据你所描述的,最简单的选择是使用密码压缩安装程序。如果用户不知道正确的密码,他们将无法解压zip文件并安装程序。
这通常不太实际,因为每个人都提供相同的密码。你想要做你自己的序列密钥验证,并且你正在考虑在安装的时候这样做。如果这是你想要的路线,你需要提供一些脚本来验证你的安装系统。您指出,您正在使用Windows安装程序。您可以使用Windows Installer XML (WiX) toolset来编写安装。如果有足够的耐心,可以将密钥验证构建到Windows安装程序包中。最可行的方法是从wix包中调用您在c#中编写的验证例程。您可以使用Conditional Syntax检查安装中的条件。这应包括您选择2
至于选项1,那么只要在系统中存储您的信息块,用户随时可以到那里,并改变它(这毕竟是自己的电脑)。有些人将其存储在注册表中,有些存储在密钥文件中。删除这些文件通常不是问题,因为如果用户删除它们,程序就会知道它不应该运行。然而,用户将能够将它们复制其他机器上,等
Isolated Storage尚未储存您使用.NET信息另一个地方。无论如何,最终它都是文件系统中深埋的文件。
软件保护再次是一个复杂的话题,由您来决定,您的要求是什么,您可以承受的妥协以及您选择实施的内容。
祝你好运!