2009-03-04 2 views
3

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

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

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

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


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

Неужели кто-нибудь нашел хоть что-то в этом роде или знает план MS, чтобы исправить это?

ответ

0

Считаете ли вы, что registering the application to a custom URL protocol? Это предположительно обеспечило бы свойства, которые вы считаете желательными: возможность запуска приложения с произвольными параметрами запуска внутри веб-браузера.

1

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

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

Если вы настроите .NET 3.5 SP-1 или .NET 4.0, вы можете передать аргументы в приложение, если оно находится в режиме онлайн/офлайн. Чтобы узнать, как это сделать, посмотрите this article.

Смежные вопросы