ClickOnce应用程序错误:部署和应用程序没有匹配的安全区域

时间:2022-01-21 15:50:03

I am having trouble on ClickOnce Application with FireFox and Chrome in IE it works fine. the Detail Of exception is:

我在使用FireFox和IE浏览器的ClickOnce应用程序时遇到了麻烦。例外的细节是:

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.

Please Help Me out on this problem.

请帮我解决这个问题。

5 个解决方案

#1


1  

If you're getting the error above, then it doesn't think you're signing the manifests. Be sure in the Signing tab that you have the checkbox checked, and a valid certificate selected. Also, are you publishing this in Full Trust or partial trust? If doing Partial Trust, change it to Full Trust, especially if doing internet install.

如果您得到上面的错误,那么它不认为您正在签署清单。请确保在签名选项卡中选中了复选框,并选择了有效的证书。另外,您是完全信任还是部分信任的发布?如果执行部分信任,则将其更改为完全信任,特别是在执行internet安装时。

#2


1  

Downloading file breaks relative link

The problem is that the error message should have been ExampleAppName.exe.manifest could not be found.

问题是错误消息应该是ExampleAppName.exe。无法找到舱单。

If you open the ExampleAppName.application file that was downloaded you can see it probably points to a path like Application Files\ExampleAppName.exe.manifest and that file does not exist locally.

如果打开ExampleAppName。下载的应用程序文件可能指向一个路径,比如application Files\ExampleAppName.exe。manifest和那个文件在本地不存在。

It still works in IE because IE starts the installer WITHOUT downloading the file. Then the manifest file does in fact exist in a relative path to where the ExampleAppName.application file is on the Internet.

它仍然可以在IE中工作,因为IE在不下载文件的情况下启动安装程序。然后,manifest文件实际上存在于与ExampleAppName所在的相对路径中。应用程序文件在Internet上。

Manually convert into absolute link

The fix is to change the ExampleAppName.application file and provide it an absolute path to where the AppName.exe.manifest exists on the Internet.

修正方法是更改ExampleAppName。应用程序文件,并为其提供AppName.exe所在的绝对路径。manifest存在于互联网上。

#3


0  

You need to install the ClickOnce Extension for Chrome and enable it. Your application will run instantly without you clicking on the downloaded app.

你需要为Chrome安装ClickOnce扩展并启用它。您的应用程序将立即运行,无需单击下载的应用程序。

#4


0  

In Visual Studio 2013 I've verified that this error is caused by having the "Exclude deployment provider URL" checked in the Publish options of the project.

在Visual Studio 2013中,我已经验证了这个错误是由在项目的发布选项中检查“排除部署提供程序URL”引起的。

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

As a extra precaution, make sure to provide your root URL where the application updates/install will live:

作为额外的预防措施,请确保提供应用程序更新/安装将驻留的根URL:

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

#5


0  

Configure Visual Studio to include update location

This works for VS2008 projects at least:

这至少适用于VS2008项目:

Properties -> Publish -> Updates -> Set the update location to http://www.example.com/ApplicationName/

属性->发布->更新->将更新位置设置为http://www.example.com/ApplicationName/

This will add a <deploymentProvider codebase=... /> subsection to the <deployment> section in your .application file. And this (at least) Chrome accepts.

这将添加一个 小节到.application文件中的 小节。这个(至少)Chrome可以接受。

#1


1  

If you're getting the error above, then it doesn't think you're signing the manifests. Be sure in the Signing tab that you have the checkbox checked, and a valid certificate selected. Also, are you publishing this in Full Trust or partial trust? If doing Partial Trust, change it to Full Trust, especially if doing internet install.

如果您得到上面的错误,那么它不认为您正在签署清单。请确保在签名选项卡中选中了复选框,并选择了有效的证书。另外,您是完全信任还是部分信任的发布?如果执行部分信任,则将其更改为完全信任,特别是在执行internet安装时。

#2


1  

Downloading file breaks relative link

The problem is that the error message should have been ExampleAppName.exe.manifest could not be found.

问题是错误消息应该是ExampleAppName.exe。无法找到舱单。

If you open the ExampleAppName.application file that was downloaded you can see it probably points to a path like Application Files\ExampleAppName.exe.manifest and that file does not exist locally.

如果打开ExampleAppName。下载的应用程序文件可能指向一个路径,比如application Files\ExampleAppName.exe。manifest和那个文件在本地不存在。

It still works in IE because IE starts the installer WITHOUT downloading the file. Then the manifest file does in fact exist in a relative path to where the ExampleAppName.application file is on the Internet.

它仍然可以在IE中工作,因为IE在不下载文件的情况下启动安装程序。然后,manifest文件实际上存在于与ExampleAppName所在的相对路径中。应用程序文件在Internet上。

Manually convert into absolute link

The fix is to change the ExampleAppName.application file and provide it an absolute path to where the AppName.exe.manifest exists on the Internet.

修正方法是更改ExampleAppName。应用程序文件,并为其提供AppName.exe所在的绝对路径。manifest存在于互联网上。

#3


0  

You need to install the ClickOnce Extension for Chrome and enable it. Your application will run instantly without you clicking on the downloaded app.

你需要为Chrome安装ClickOnce扩展并启用它。您的应用程序将立即运行,无需单击下载的应用程序。

#4


0  

In Visual Studio 2013 I've verified that this error is caused by having the "Exclude deployment provider URL" checked in the Publish options of the project.

在Visual Studio 2013中,我已经验证了这个错误是由在项目的发布选项中检查“排除部署提供程序URL”引起的。

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

As a extra precaution, make sure to provide your root URL where the application updates/install will live:

作为额外的预防措施,请确保提供应用程序更新/安装将驻留的根URL:

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

#5


0  

Configure Visual Studio to include update location

This works for VS2008 projects at least:

这至少适用于VS2008项目:

Properties -> Publish -> Updates -> Set the update location to http://www.example.com/ApplicationName/

属性->发布->更新->将更新位置设置为http://www.example.com/ApplicationName/

This will add a <deploymentProvider codebase=... /> subsection to the <deployment> section in your .application file. And this (at least) Chrome accepts.

这将添加一个 小节到.application文件中的 小节。这个(至少)Chrome可以接受。