Подтвердить что ты не робот

Ошибка приложения ClickOnce: развертывание и приложение не имеют соответствующих зон безопасности

У меня возникают проблемы с приложением ClickOnce с FireFox и Chrome в IE, он отлично работает. Элемент исключения:

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

SOURCES
    Deployment url          : file:///C:/Users/ibz/Downloads/MyApp.application

IDENTITIES
    Deployment Identity     : MyApp.application, Version=1.0.1.23, Culture=neutral, PublicKeyToken=0000000000000000, processorArchitecture=msil

APPLICATION SUMMARY
    * Online only application.
    * Trust url parameter is set.
ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of C:\Users\ibz\Downloads\MyApp.application resulted in exception. Following failure messages were detected:
        + Deployment and application do not have matching security zones.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    * The manifest for this application does not have a signature. Signature validation will be ignored.

OPERATION PROGRESS STATUS
    * [2/10/2012 4:53:18 PM] : Activation of C:\Users\ibz\Downloads\MyApp.application has started.
    * [2/10/2012 4:53:18 PM] : Processing of deployment manifest has successfully completed.
    * [2/10/2012 4:53:18 PM] : Installation of the application has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [2/10/2012 4:53:18 PM] System.Deployment.Application.InvalidDeploymentException (Zone)
        - Deployment and application do not have matching security zones.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
            at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
            at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
            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)

COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available.

Пожалуйста, помогите мне решить эту проблему.

4b9b3361

Ответ 1

Если вы получаете ошибку выше, то она не думает, что вы подписываете манифесты. Убедитесь, что на вкладке "Подписание" установлен флажок и выбран действительный сертификат. Кроме того, публикуете ли вы это в режиме полного доверия или частичного доверия? Если вы выполняете частичное доверие, измените его на Full Trust, особенно если вы выполняете установку через Интернет.

Ответ 2

Загрузка фрагмента ссылки относительной ссылки

Проблема заключается в том, что сообщение об ошибке должно быть ExampleAppName.exe.manifest could not be found.

Если вы откроете загруженный файл ExampleAppName.application, вы увидите, что он, вероятно, указывает на путь, например Application Files\ExampleAppName.exe.manifest, и этот файл не существует локально.

Он по-прежнему работает в IE, потому что IE запускает установщик БЕЗ загрузки файла. Тогда файл манифеста фактически существует в относительном пути к тому, где файл ExampleAppName.application находится в Интернете.

Вручную конвертировать в абсолютную ссылку

Исправление состоит в том, чтобы изменить файл ExampleAppName.application и предоставить ему абсолютный путь к тому, где AppName.exe.manifest существует в Интернете.

Ответ 3

Настроить Visual Studio для включения местоположения обновления

Это работает для проектов VS2008 как минимум:

Свойства → Опубликовать → Обновления → Задайте местоположение обновления http://www.example.com/ApplicationName/

Это добавит раздел <deploymentProvider codebase=... /> в раздел <deployment> в вашем файле .application. И это (по крайней мере) Chrome принимает.

Ответ 4

Вам необходимо установить расширение ClickOnce для Chrome и включить его. Приложение будет запускаться мгновенно без нажатия на загруженное приложение.

Ответ 5

В Visual Studio 2013 я проверил, что эта ошибка вызвана тем, что в параметрах публикации проекта включен параметр "Исключить URL поставщика развертывания".

Project Properties > Publish > Options > Manifests > Un-tick "Exclude deployment provider URL"

В качестве дополнительной меры предосторожности убедитесь, что вы указали свой корневой URL, в котором будет обновляться/устанавливается приложение:

Project Properties > Publish > Updates > Update Location (Provide the root URL where this application will be found)