WPF应用和ClickOnce的试用期

时间:2014-04-08 14:55:17

标签: .net wpf clickonce trial

我们正在使用ClickOnce将.NET WPF应用程序部署到beta测试人员。我们想要设置一个到期日期,之后应用程序不再打开。第一次安装的固定日期或x天都可以。试用后,我们要求用户从他们的计算机上取消应用程序。如果他们不这样做,我们希望应用程序不再打开。

具体要求:

  1. 无法通过重新安装或任何其他方式重置时间
  2. 应用程序也可以脱机工作,无需访问Internet,因此每次运行应用程序时检查Web服务器都不是最佳解决方案
  3. 对应用的后续更新不会影响到期日期
  4. 我们希望能够通过发送新的激活码或类似用户的任何时间延长试用期
  5. 我在寻找是否有一些现成的解决方案(非常常见),至少是一些基本的机制来开始工作。

3 个答案:

答案 0 :(得分:3)

我在项目(*)中使用了Rhino Licensing,它似乎涵盖了大多数用例。有关教程HereRhino code on GitHub

,请参阅Rhino code direct download (zip)

但是,如果某人有足够的决心,那么您可以使用 来阻止他们使用您的代码

Rhino的工作原理是为您的用户生成一个许可文件,该文件中包含与日期相关的信息。这是加密签名的,应用程序代码验证它是好的。但是,所有需要被击败的都是修改你的代码以取出电话,说明许可证是好还是坏。

我修改代码的人的解决方案是“继续执行”,因为我将使用无法重复的数字证书对我的代码进行签名。所以我总是说“嘿,这是真正的代码,如果你的代码不匹配,那么有人做了什么来修改它?”。低级恐惧的东西,但没有什么可以做的,只能站在每个用户身上并让他们做的事情。

(*)我确实从基本代码开始,然后将其中的废话砍掉以获得符合我的愿望的东西。

答案 1 :(得分:0)

实际上,您希望控制已安装应用程序的功能和/或生命周期。您所描述的是" Software License Management。"你是对的,这是一个非常常见的业务要求,但通常任何现成的解决方案都会花费你的钱。 "开源软件许可证管理"会有点矛盾。

如果你开发的应用商店"环境,如Windows 8或任何移动平台,通常为您提供许可证管理API,紧密集成到应用程序商店环境中。但对于常规的Windows桌面应用程序,您必须支付费用。用于商业解决方案,或开发自己的解决方案。

如果没有免费的现成解决方案,您可以找到一些文章herethere,这些文章可能会让您指出正确的方向,以实施您自己的解决方案。

答案 2 :(得分:0)

您可以创建一个隐藏文件,您可以在第一次启动应用程序的日期并在代码中配置试用期