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

Deployment 如何计算ClickOnce程序的安装/更新次数?,deployment,clickonce,Deployment,Clickonce,计算ClickOnce部署程序已安装或更新的次数的最佳方法是什么?此外,是否有可能以某种方式跟踪谁正在安装或更新该程序(例如,地理位置)?我的ClickOnce应用程序需要登录,因此很容易从注册和IP地址判断谁在使用该程序 另一种方法是检查服务器日志中的程序包点击率。如果您将它设置为每次执行时检查更新,它将在每次执行时命中.application,当有更改时,点击包。最好的方法可能是在web服务器上使用日志记录工具。日志下载到.application etc(或者可能是实际的dll/exe文件,

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

我的ClickOnce应用程序需要登录,因此很容易从注册和IP地址判断谁在使用该程序


另一种方法是检查服务器日志中的程序包点击率。如果您将它设置为每次执行时检查更新,它将在每次执行时命中.application,当有更改时,点击包。

最好的方法可能是在web服务器上使用日志记录工具。日志下载到.application etc(或者可能是实际的dll/exe文件,因为.application可能会进行自动更新检查)

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


然而,ClickOnce是被动的——没有办法向它注入额外的代码。您也许可以在第一次运行时运行一些代码,但是…

有一些关于MSDN的信息

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

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


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

ClickOnce有一个可供使用的API。检查应用程序启动时的值并执行需要执行的操作。

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

我在哪里可以做这个?它在
Main()
中吗?是的,您可以在调用Application.Run(new Form1())之前的某个时间在Main()中调用它。也很抱歉延迟响应!