Запустите ClickOnce через URL, но не проверяйте наличие обновлений - PullRequest
3 голосов
/ 04 марта 2009

У меня есть приложение ClickOnce, которое часто запускается из другого приложения через URL-адрес. URL содержит некоторые аргументы командной строки, которые загружают данные и т. Д.

Поскольку частота запуска приложения очень высока, я хочу отключить проверку обновлений версий. Поэтому я реализовал свою собственную проверку через класс ApplicationDeployment, чтобы избежать этого. Он работает нормально, если вы запускаете из меню «Пуск» после установки приложения.

Однако мы также хотим сохранить запуск через поведение URL, потому что это выгодно во многих отношениях. Но при запуске по URL-адресу всегда выполняется проверка обновлений - кажется, что IE недостаточно умен, чтобы искать приложение в локальной области загрузки, чтобы узнать, установлено ли оно уже или нет ...

Кто-нибудь знает способ получить поведение «не проверять наличие обновлений автоматически» при использовании механизма запуска URL-адреса?


На самом деле, похоже, проблема в Catch-22 в модели ClickOnce. Если вы запускаете с URL, IE будет всегда связываться с хостом и проверять версию, обновляя при необходимости, независимо от того, помечено ли приложение как «Не проверять версию». Однако при запуске из меню «Пуск» ClickOnce отключает аргументы командной строки.

Кто-нибудь нашел способ обойти это или знает план MS по его устранению?

Ответы [ 2 ]

1 голос
/ 04 апреля 2010

Microsoft ничего не может «исправить». Это предполагаемое поведение онлайн-развертывания ClickOnce. Он проверяет, что он подключен к сети, и проверяет, запущена ли последняя версия, а затем запускается. Если вы не хотите, чтобы это делалось, вам нужно настроить его на работу в сети и в автономном режиме.

Я думаю, что если вы установите его в автономный режим и по-прежнему вызываете его через http-URL, он все равно будет проверять наличие обновлений, но я бы не стал клясться в этом. Если это онлайн / автономное приложение, вы можете вызвать его через ярлык в меню «Пуск».

Если вы нацелены на .NET 3.5 SP-1 или .NET 4.0, вы можете передавать аргументы приложению, если оно подключено к сети или отключено. Чтобы узнать, как это сделать, посмотрите эту статью .

0 голосов
/ 04 марта 2009

Рассматривали ли вы регистрацию приложения по пользовательскому протоколу URL ? Предположительно это обеспечит свойства, которые вы считаете желательными, а именно: возможность запуска приложения с произвольными параметрами запуска из веб-браузера.

...