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

问题描述 投票:0回答:2

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

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

但是,我们也想保留通过 URL 启动的行为,因为它在很多方面都有优势。但是当通过 URL 启动时,总是执行更新检查——似乎 IE 不够聪明,无法在本地下载区域中查找应用程序以查看它是否已安装...

有谁知道在仍然使用 URL 启动机制的同时获得“不自动检查更新”行为的方法?


实际上,问题看起来像是 ClickOnce 模型中的第 22 条军规。如果您使用 URL 启动,IE 将 always 与主机联系并检查版本,必要时更新,无论该应用程序是否被标记为“不检查版本”。但是,如果您从“开始”菜单启动,ClickOnce 会禁用命令行参数。

有没有人找到解决这个问题的方法,或者知道 MS 计划修复它?

clickonce
2个回答
1
投票

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

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

如果您的目标是 .NET 3.5 SP-1 或 .NET 4.0,则可以将参数传递给在线/离线的应用程序。


0
投票

您是否考虑过将应用程序注册到自定义 URL 协议?这大概会提供您认为需要的属性:即从网络浏览器内部使用任意启动参数启动应用程序的能力。

© www.soinside.com 2019 - 2024. All rights reserved.