如何计算ClickOnce程序的安装/更新次数?

时间:2009-01-18 17:28:00

标签: deployment clickonce

计算ClickOnce部署程序的安装或更新次数的最佳方法是什么?此外,是否有可能以某种方式跟踪谁正在安装或更新(例如,地理位置)?

5 个答案:

答案 0 :(得分:6)

ClickOnce有一个可以使用的API。在应用程序启动时检查ApplicationDeployment.IsFirstRun的值,并执行您需要执行的操作。

答案 1 :(得分:5)

我的ClickOnce应用程序需要登录,因此很容易判断谁在注册时使用该程序以及他们的IP地址。

另一种方法是检查服务器日志以查看软件包上的匹配。如果你设置它来检查每次执行的更新,它每次都会点击.application,当有变化时,点击包。

答案 2 :(得分:2)

MSDN上有一些信息Administering ClickOnce Deployments

企业使用ClickOnce的一个常见要求是需要跟踪哪些用户已启动或安装了哪些应用程序。一个例子是查询用户最近发布的应用程序的特定版本。可能需要在部署服务器上进行此类跟踪,以避免监视通过网络分发的大量客户端计算机。在客户端进行跟踪还需要定制软件开发和安装,因为ClickOnce运行时不会公开任何挂钩来插入自定义启动事件跟踪解决方案。

为了跟踪哪些用户已从服务器端安装或启动了哪些应用程序,您需要验证用户的身份并检测和拦截文件下载请求。你做这些事情的能力受到许多因素的影响。

一个关键因素是使用的网络协议。 ClickOnce支持HTTP(和HTTPS)或网络文件共享(UNC路径)。 HTTP提供了最大的灵活性,因为您可以轻松拦截服务器上的入站文件请求。您仍然可以使用Windows文件审核和事件日志实现某种级别的跟踪,但这些选项很难设置。

答案 3 :(得分:0)

执行此操作的最佳方法可能是使用Web服务器上的日志记录工具。记录下载到.application等(或者可能是实际的dll / exe文件,因为.application可能会自动更新检查)。

也许是通过http模块,但任何网络服务器日志工具都应该足够了。您可以大约从IP中推断出位置(但您需要找到自己的提供商)。

但是,ClickOnce是被动的 - 无法向其中注入额外的代码。你可以在第一次运行时运行一些代码,但是......

答案 4 :(得分:0)

托管记录请求者IP地址的Web服务。在启动时调用应用程序中的Web服务。位置与IP地址相关联,您可以从中找到它。 :)