2009-11-05 2 views
6

Я пытаюсь развернуть приложение, построенное с помощью VS2008 Express. Идея состоит в том, чтобы загрузить файлы на веб-сервер (установка через веб-сайт) и в то же время предложить автономные (CD) установки для некоторых пользователей, у которых нет подключения к Интернету.Настройка ClickOnce CD пытается подключиться к Интернету

В Publish опции я оставил Installation Folder URL пустые, мы отключили опцию The application should check for updates (так как я забочусь о проверках обновлений вручную), и я заполнил вариант Update location (if different than publish location).

Когда я пытаюсь протестировать автономную установку, приложение не может быть установлено. Я получаю сообщение об ошибке «Загрузка приложения не удалось Проверьте подключение к сети ....», И при нажатии на кнопку Подробности, я читаю следующее сообщение об ошибке:

  • Activation of C:\Install\myapp.application resulted in exception. Following failure messages were detected:

Почему это, что, хотя все файлы присутствует, установка пытается загрузить файлы из Интернета?

Наконец, когда я удаляю URL-адрес сервера из Update location, все нормально. Нужно ли мне создавать две разные настройки каждый раз, когда мне нужно обновлять приложение? Или есть другое решение?


Edit:

Дальнейшие тесты показали, что отсутствует установка работает нормально в Windows XP, но не работает в Windows 7. В последнем случае, используя те же установочные файлы, программа установки пытается загрузить приложение из Интернета, вместо использования локальных файлов .deploy.

Нет доступных гуру ClickOnce?

ответ

5

Бегун ClickOnce попытается подключиться к указанному URL, независимо от того, находятся ли файлы уже локально или нет. Вам понадобятся две конфигурации сборки для поддержки развертывания на компакт-дисках и в Интернете. Вот соответствующая информация от Microsoft's documentation.

To enable this deployment strategy in Visual Studio, click From a CD-ROM or DVD-ROM on the How Installed page of the Publish Wizard.

To enable this deployment strategy manually, change the deploymentProvider tag in the deployment manifest so that the value is blank. In Visual Studio, this property is exposed as Installation URL on the Publish page of the Project Designer. In Mage.exe, it is Start Location.

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

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

2

У меня была проблема, которая была подобна, за исключением того, что я публиковал приложение для более недавнего проекта в VS2015. Моя публикующие настройки были:

  • Как пользователи будут устанавливать приложение - «С CD-ROM или DVD-ROM»
  • Приложение не будет проверять наличие обновлений

Я хотел бы опубликовать это от моя машина dev (например, mymachine01) и.файл приложения он связывает вместе с Setup.exe всегда будет содержать следующую строку:

<deploymentProvider codebase="http://mymachine01/Application20Name/Application20Name.application" />

Я бы пронестись, что вверх, затем опустите его на другую машину, чтобы проверить установки, и я бы получить Application cannot be started. Contact the application vendor. ошибку. Нажав кнопку «Сведения», вы обнаружите ошибку The remote name could not be resolved, в которой приложение пыталось получить доступ к mymachine01. Чтобы исправить это, я использовал следующие шаги:

  1. щелкните правой кнопкой мыши проект в VS и выберите свойства
  2. Перейти к Publish вкладке
  3. нажмите кнопку «Параметры»
  4. Выберите «Манифесты»
  5. Check " Исключить URL поставщика развертывания «