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.
这将添加一个
#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.
这将添加一个