web-dev-qa-db-ja.com

ClickOnceアプリケーションエラー:展開とアプリケーションに一致するセキュリティゾーンがありません

Firefoxを使用したClickOnceアプリケーションで問題が発生し、Chrome in 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.

この問題について私を助けてください。

14
Bindas

更新場所を含めるようにVisualStudioを構成する

これは、少なくともVS2008プロジェクトで機能します。

プロパティ->公開->更新->更新場所をhttp://www.example.com/ApplicationName/に設定します

これにより、<deploymentProvider codebase=... />ファイルの<deployment>セクションに .application サブセクションが追加されます。そしてこれは(少なくとも)Chromeは受け入れます。

1
Bear

上記のエラーが発生した場合は、マニフェストに署名しているとは見なされません。 [署名]タブで、チェックボックスがオンになっていて、有効な証明書が選択されていることを確認してください。また、これを完全信頼または部分信頼で公開していますか?部分的な信頼を行う場合、特にインターネットインストールを行う場合は、完全な信頼に変更します。

1
RobinDotNet

ファイルをダウンロードすると相対リンクが壊れます

問題は、エラーメッセージが_ExampleAppName.exe.manifest could not be found_であるはずだったことです。

ダウンロードした_ExampleAppName.application_ファイルを開くと、おそらく_Application Files\ExampleAppName.exe.manifest_のようなパスを指していることがわかり、そのファイルはローカルに存在しません。

IEはファイルをダウンロードせずにインストーラーを起動するため、IEでも機能します。その後、マニフェストファイルは実際には_ExampleAppName.application_ファイルはインターネット上にあります。

手動で絶対リンクに変換する

修正は、_ExampleAppName.application_ファイルを変更し、インターネット上の_AppName.exe.manifest_が存在する場所への絶対パスを提供することです。

1
Michael

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)
0
ScottN

ChromeのClickOnce拡張機能をインストールして有効にする必要があります。ダウンロードしたアプリをクリックしなくても、アプリケーションはすぐに実行されます。

0
Dumisani