我有一个ClickOnce应用程序,它经常通过URL从另一个应用程序启动。 URL包括一些加载数据的命令行参数,等等。
由于启动应用程序的频率非常高,我想删除对版本更新的检查。所以我通过ApplicationDeployment类实现了自己的检查以避免它。如果您在安装应用程序后从“开始”菜单启动它,它可以正常工作。
但是,我们还希望通过URL行为保留启动,因为它在很多方面都很有用。但是当通过URL启动时,总是会执行更新检查 - 看起来IE似乎不够智能,无法在本地下载区域中查找应用程序以查看它是否已安装...
是否有人知道在使用网址启动机制时获取“不自动检查更新”行为的方法?
实际上,问题似乎是ClickOnce模型中的Catch-22。如果您使用URL启动,IE将始终与主机联系并检查版本,必要时进行更新,无论应用程序是否标记为“不检查版本”。但是,如果从“开始”菜单启动,则ClickOnce将禁用命令行参数。
有没有人找到任何解决方法,或者知道MS计划修复它?
答案 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浏览器中使用任意启动参数启动应用程序。