将单击一次应用程序更改的清单从4.0更改为4.5

Alk*_*fer 5 clickonce

我在.NET 4.0中有一个项目,在本地共享文件夹中使用click-once发布以进行测试.一旦测试通过,我们使用mage.exe来重新签名清单并更改发布网址和生产最终网址http://www.ourcompany.net/ ....

如果我们使用.NET 4.0,一切都有效.

如果我们使用.NET 4.5及更高版本,当我们尝试从最终URL启动应用程序时,它无法安装,但下面的错误.

我的问题是:

我应该如何使用mage.exe更改应用程序的发布URL(并使用新密钥重新签名)与.NET 4.5,从4.0更改的内容一切正常?

平台版本信息Windows:6.2.9200.0(Win32NT)公共语言运行库:4.0.30319.34011 System.Deployment.dll:4.0.30319.33440建人:FX45W81RTMREL clr.dll:4.0.30319.34011通过内置:FX45W81RTMGDR dfdll.dll:4.0.30319.33440建作者:FX45W81RTMREL dfshim.dll:6.3.9600.16384(winblue_rtm.130821-1623)

来源部署网址:http://www.xxxxxx.net/test/uploadtest/uploadtest.application 服务器:Microsoft-IIS/6.0 X-Powered-By:ASP.NET应用程序网址:http://www.xxxxxx.net/ test/uploadtest/Application%20Files/UploadTest_1_0_0_6/UploadTest.exe.manifest 服务器:Microsoft-IIS/6.0 X-Powered-By:ASP.NET

IDENTITIES部署标识:UploadTest.application,Version = 1.0.0.6,Culture = neutral,PublicKeyToken = 835b72d8d08b5689,processorArchitecture = msil

应用摘要*可安装的应用程序.

错误摘要以下是错误的摘要,这些错误的详细信息将在后面的日志中列出.*激活http://www.xxxxxx.net/test/uploadtest/uploadtest.application导致异常.检测到以下失败消息:+应用程序清单具有与指定的计算散列不同的计算散列或根本未指定散列.+ File,UploadTest.exe.manifest,具有与manifest中指定的不同的计算哈希值.

组件存储事务故障摘要未检测到事务错误.

警告此操作期间没有警告.

操作进度状态*[04/04/2014 11:12:05]:已开始激活http://www.xxxxxx.net/test/uploadtest/uploadtest.application.*[04/04/2014 11:12:06]:部署清单的处理已成功完成.*[04/04/2014 11:12:06]:已开始安装应用程序.

错误详细信息在此操作期间检测到以下错误.*[04/04/2014 11:12:06] System.Deployment.Application.InvalidDeploymentException(HashValidation) - 应用程序清单具有与指定的哈希值不同的计算哈希值,或者根本没有指定哈希值. - 来源:System.Deployment - 堆栈跟踪:在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,乌里deploymentUri,IDownloadNotification通知,DownloadOptions选项,乌里和appSourceUri,字符串&appManifestPath)在System.Deployment.Application.DownloadManager .DeownloadApplicationManifest(AssemblyManifest deploymentManifest,String targetDir,Uri deploymentUri,Uri&appSourceUri,String&appManifestPath)位于System.Deployment.Application.Application.Application.ApplicationActivator的System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState,ActivationDescription actDesc,Int64 transactionId,TempDirectory&downloadTemp).的installApplication(SubscriptionState&子状态中,ActivationDescription actDesc)在System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(URI activationUri,布尔isShortcut,字符串textualSubId,字符串deploymentProviderUrlFromExtension,眉 erSettings browserSettings,字符串&errorPageUrl)在System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象状态)---内部异常--- System.Deployment.Application.InvalidDeploymentException(HashValidation) - 文件,UploadTest.exe.manifest,具有不同的计算哈希比清单中指定的哈希. - 来源:System.Deployment - 堆栈跟踪:在System.Deployment.Application.ComponentVerifier.VerifyFileHash(字符串文件路径,哈希散列)在System.Deployment.Application.ComponentVerifier.VerifyFileHash(字符串文件路径,HashCollection hashCollection)在System.Deployment.Application .DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,字符串TARGETDIR,乌里deploymentUri,IDownloadNotification通知,DownloadOptions选项,乌里&appSourceUri,字符串&appManifestPath)

COMPONENT STORE TRANSACTION DETAILS没有可用的交易信息.

Alk*_*fer 3

我终于解决了,问题原来是使用了错误的 sha 和 mage.exe 工具。

当我使用 mage.exe 退出我的应用程序时,如果应用程序采用 .NET 4.5 或更高版本,我需要指定使用 SHA256RSA 和选项

- sha256RSA

在 mage.exe 命令行中,一切正常。