C # Развертывание моего приложения - clickonce только из Интернета - PullRequest
7 голосов
/ 04 августа 2010

Итак, я разработал свое приложение на C #. Я готов развернуть это. Я хочу сделать так, чтобы пользователи всегда запускали его с моего сайта (чтобы они всегда получали обновления, не устанавливали и т. Д.).

Является ли ClickOnce правильным способом сделать это?

Я попытался развернуть ClickOnce на моем сервере, и некоторые вещи бросились в глаза:

1) Пользователю предоставляется возможность запустить установку или запустить файл приложения. В чем разница? Разве он не может обнаружить это самостоятельно?

2) Когда я пытаюсь «запустить» приложение, оно просит загрузить его на мой компьютер. В любом случае, просто запустить файл прямо из браузера?

3) После загрузки и запуска файла приложения. Я получаю сообщение об ошибке: «Развертывание и приложение не имеют соответствующих зон безопасности».

1 Ответ

9 голосов
/ 04 августа 2010

Да, ClickOnce идеально подходит для ваших нужд.

  1. setup.exe, или «загрузчик», как его называют, используется для установки необходимых компонентов, таких как .NET Framework и Microsoft Installer, поскольку именно .NET Framework содержит среду выполнения ClickOnce, которая необходима установить ваше приложение. Загрузчик нужно использовать только один раз и только на компьютерах, которые не имеют этих предварительных условий, после этого для обновлений используется только файл .application, называемый «манифест развертывания». При публикации с использованием ClickOnce создается файл Publish.htm, который содержит некоторый код JavaScript, который определяет, установлены ли у пользователя необходимые условия. Если пользователь этого не делает, он представляет кнопку, которая ссылается на setup.exe, в противном случае он представляет кнопку, которая ссылается непосредственно на файл .application. Вы можете использовать эту страницу (или создать ее на ее основе), чтобы предоставить вашим пользователям максимально короткий опыт установки.

  2. Либо .NET Framework не установлен на клиентском компьютере (в данном случае используйте загрузчик), либо ваш веб-сервер настроен неправильно и поэтому не связывает расширение .application с MIME. тип application/x-ms-application. Создайте эту ассоциацию, чтобы решить проблему. Я также рекомендую добавить некоторые заголовки http, чтобы отключить кэш в манифесте развертывания, в противном случае браузер пользователя может его кэшировать, что может привести к тому, что пользователь пропустит обновления.

  3. Вы не можете загрузить и запустить файл манифеста развертывания локально для установки ClickOnce, которая была опубликована в веб-расположении, поскольку ClickOnce предоставляет более высокий уровень доверия локальной установке (например, с локального компьютера или общего сетевого ресурса) , но манифест приложения указывает на источник установки в Интернете, который имеет более низкий уровень доверия и поэтому не работает. Как только вы решите проблему 2, эта проблема также будет решена.

...