Сбой приложения ClickOnce, если выбран «Проверить наличие обновлений» - PullRequest
1 голос
/ 13 января 2011

Вот что я делаю. Я создал простое пустое WPF приложение под Visual Studio 2010 . Я включаю ClickOnce развертывание, устанавливаю подпись, безопасность и т. Д. И публикую в локальном IIS экземпляре. Я запускаю браузер, попадаю на страницу publish.htm, и он устанавливается правильно.

Далее я все уничтожаю (в конце концов, это тестирование), заново создаю проект, включаю ClickOnce, подписываю его и т. Д., Но на этот раз я также нажимаю кнопку «Обновления ...» в Свойствах -> Опубликовать стр. Я нажимаю на флажок «Приложение должно проверять наличие обновлений» и выбираю переключатель «Перед запуском приложения». Я нажимаю ОК, снова публикую его в локальном IIS и перехожу на страницу publish.htm. Когда я нажимаю «Установить», я получаю сообщение об ошибке «Не удается загрузить приложение. В приложении отсутствуют необходимые файлы. Обратитесь за помощью к поставщику приложения. '.

Единственная ссылка, которую я нашел, это то, что в файле application.manifest указан файл, который отсутствует, но я не могу определить, что это. Если бы кто-то мог просто указать мне правильное направление на этом, я был бы признателен.

Это определенно ошибка 404 Not Found, но я понятия не имею, к какому файлу она относится. Вот страница «Подробности» -

PLATFORM VERSION INFO
    Windows             : 6.1.7600.0 (Win32NT)
    Common Language Runtime     : 4.0.30319.1
    System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
    clr.dll             : 4.0.30319.1 (RTMRel.030319-0100)
    dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
    dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : http://localhost/WpfApplication1/WpfApplication1.application
                        Server      : Microsoft-IIS/7.5
                        X-Powered-By    : ASP.NET
    Deployment Provider url     : http://jerrydev/WpfApplication1/WpfApplication1.application

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of http://localhost/WpfApplication1/WpfApplication1.application resulted in exception. Following failure messages were detected:
        + Downloading http://jerrydev/WpfApplication1/WpfApplication1.application did not succeed.
        + The remote server returned an error: (404) Not Found.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [1/13/2011 11:05:50 AM] : Activation of http://localhost/WpfApplication1/WpfApplication1.application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [1/13/2011 11:05:50 AM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
        - Downloading http://jerrydev/WpfApplication1/WpfApplication1.application did not succeed.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
            at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
            at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
            at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
            at System.Deployment.Application.DownloadManager.DownloadManifest(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ManifestType manifestType, ServerInformation& serverInformation)
            at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirect(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
            at System.Deployment.Application.DownloadManager.FollowDeploymentProviderUri(SubscriptionStore subStore, AssemblyManifest& deployment, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options)
            at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
        --- Inner Exception ---
        System.Net.WebException
        - The remote server returned an error: (404) Not Found.
        - Source: System
        - Stack trace:
            at System.Net.HttpWebRequest.GetResponse()
            at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)

COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available.

Ответы [ 2 ]

0 голосов
/ 18 января 2011

Я использовал localhost в URL для всего (Публикация, установка, обновление); я обнаружил, что процесс публикации будет использовать имя машины в манифестах в случае «localhost». Моя проблема на самом деле связана с тем, что я не обновил мой файл Hosts.etc, чтобы сопоставить имя моего компьютера с «localhost». Исправление этой проблемы решило все мои проблемы, связанные как с установкой приложения clickonce, так и с возможностью его обновления после установки.

0 голосов
/ 17 января 2011

Вы публикуете на localhost и устанавливаете его на той же машине? Я спрашиваю, потому что у него есть localhost в URL. Вы заполнили UpdateURL в диалоге обновлений или оставили его пустым? Если он должен находиться в том же месте, что и URL-адрес установки, оставьте это поле пустым.

Как выглядит ваш установочный URL?

...