windows安装程序-将变量的状态存储在C#中

本文关键字:存储 状态 变量 安装 程序 windows | 更新日期: 2023-09-27 17:58:53

我正在开发一个c#应用程序,当用户安装该应用程序并首次运行该应用程序时,如果用户输入了正确的密钥,我会向用户索要密钥。我运行应用程序。但我的要求是,这个过程应该只在安装后一次,我认为有两种可能性。

  1. 将软件验证状态存储在变量中,并使用它来允许应用程序的运行(我不想使用XML,对象序列化,因为我必须保存一个变量的状态,用户也可以删除序列化创建的文件)。

  2. 当用户安装应用程序时,询问其密钥,如果他输入了错误的密钥,则他应该无法安装软件。

有人能回答吗

  1. 有没有一种简单的方法来存储单个变量的状态

或者2.如何手动触发安装程序(验证后)。

windows安装程序-将变量的状态存储在C#中

软件保护是一个古老而广泛的主题。目前的技术状态是,不可能真正100%可靠地保护您的软件。只要有足够的曝光度和/或兴趣,迟早会有人破解它。

尽管如此,许多人和公司都会保护他们的软件产品,而且有很多方法可以做到这一点(但并非100%可靠)。

从你的问题来看,还不清楚你的要求是什么。根据您所描述的内容,最简单的选择是使用密码压缩安装程序。如果用户不知道正确的密码,他们将无法解压缩zip文件并安装您的程序。

这通常不是很实用,因为每个人都有相同的密码。您想要自己进行序列密钥验证,并且正在考虑在安装时进行验证。如果这是你想要走的路线,你需要提供一些脚本来验证你的安装系统。您表示,您正在使用windows安装程序。您可以使用Windows Installer XML(WiX)工具集来编写安装程序。如果有足够的耐心,您可以将密钥验证构建到windows安装程序包中。最实用的方法是从wix包调用您在c#中编写的验证例程。您可以使用条件语法检查安装中的条件。这应该包括您的选项2。

至于选项1,无论何时在系统中存储您的信息,用户都可以到达并更改它(毕竟是他们的计算机)。有些人将其存储在注册表中,有些则存储在密钥文件中。删除这些文件通常不是问题,因为如果用户删除了它们,您的程序就会知道它不应该运行。然而,用户可以在其他机器等上复制它们。

独立存储是另一个存储信息的地方。NET。归根结底,它是文件系统中一些深埋的文件。

再说一次,软件保护是一个复杂的主题,由您自己决定,您的需求是什么,您能承受什么样的妥协,以及您选择实施什么。

祝你好运!

对于这样的东西,我会加密它并将其存储在注册表中。这不是你想存储在设置文件中的那种东西。您可以查看这篇关于如何使用C#访问注册表的代码项目文章。