我正在开发一个需要安装在客户端计算机上的C#Win Forms应用程序(Windows XP / Windows 7)。
我遇到的问题是,我需要将每个安装包的安装数量限制为2(或某个数字)。
有没有办法通过Install Shield或任何其他方式实现这一目标?
是否将密钥嵌入文件名中,这是一个很好的做法?
等待答案。
先谢谢,
维杰
答案 0 :(得分:4)
这一定是不可能的,因为用户在运行之前可能总是复制安装包。包(如* .msi文件)只是一个字节序列,可以复制......
您可以将每台计算机的安装限制为2次,因为您将某些信息留在某处(例如在注册表中)。
另一种方法是使用许可证密钥(或嵌入到安装包中的密钥),然后使用Internet上的中央服务器激活软件。那可能是你唯一的选择。
答案 1 :(得分:2)
您需要设置一个中央服务器来管理安装并为用户分配密钥,以跟踪中央服务器上的密钥使用情况。据我所知,二进制安装本身无法跟踪它已安装的次数。
答案 2 :(得分:2)
另一个简单的解决方案是访问注册表并添加新密钥。安装时,您将检查注册表项,然后检查该数字。如果密钥不存在则创建它。
这有缺陷,因为任何知识渊博的用户都可以打开注册表(如果他们在计算机上拥有正确的权限),然后更改注册密钥的值。