通过URL启动ClickOnce但不检查更新

时间:2009-03-04 17:05:45

标签: clickonce

我有一个ClickOnce应用程序,它经常通过URL从另一个应用程序启动。 URL包括一些加载数据的命令行参数,等等。

由于启动应用程序的频率非常高,我想删除对版本更新的检查。所以我通过ApplicationDeployment类实现了自己的检查以避免它。如果您在安装应用程序后从“开始”菜单启动它,它可以正常工作。

但是,我们还希望通过URL行为保留启动,因为它在很多方面都很有用。但是当通过URL启动时,总​​是会执行更新检查 - 看起来IE似乎不够智能,无法在本地下载区域中查找应用程序以查看它是否已安装...

是否有人知道在使用网址启动机制时获取“不自动检查更新”行为的方法?


实际上,问题似乎是ClickOnce模型中的Catch-22。如果您使用URL启动,IE将始终与主机联系并检查版本,必要时进行更新,无论应用程序是否标记为“不检查版本”。但是,如果从“开始”菜单启动,则ClickOnce将禁用命令行参数。

有没有人找到任何解决方法,或者知道MS计划修复它?

2 个答案:

答案 0 :(得分:1)

微软没有“修复”的东西。这是在线ClickOnce部署的预期行为。它会检查以确保它在线并检查以确保它运行的是最新版本,然后运行。如果您不希望它这样做,那么您需要将其设置为在线和离线运行。

我认为如果您将其设置为离线并仍然通过http网址调用它,它仍然会检查更新,但我不会发誓。如果是在线/离线应用程序,您可以通过开始菜单上的快捷方式调用它。

如果您的目标是.NET 3.5 SP-1或.NET 4.0,则可以在应用程序在线/离线时将参数传递给应用程序。要了解如何执行此操作,请查看this article

答案 1 :(得分:0)

您考虑过registering the application to a custom URL protocol了吗?这可能会提供您认为合适的属性:即能够从Web浏览器中使用任意启动参数启动应用程序。