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

时间:2014-04-04 09:19:03

标签: clickonce

我在.NET 4.0中使用本地共享文件夹中的click-once发布的项目进行测试。测试通过后,我们使用mage.exe重新签名清单并使用生成最终URL 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)

SOURCES 部署网址 :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

恒等式 部署身份 :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,String targetDir,Uri deploymentUri,IDownloadNotification notification,DownloadOptions options,Uri& appSourceUri,String& appManifestPath) 在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,String targetDir,Uri deploymentUri,Uri& appSourceUri,String& appManifestPath) 在System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState,ActivationDescription actDesc,Int64 transactionId,TempDirectory& downloadTemp) 在System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState,ActivationDescription actDesc) 在System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri,Boolean isShortcut,String textualSubId,String deploymentProviderUrlFromExtension,BrowserSettings browserSettings,String& errorPageUrl) 在System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象状态) ---内部例外--- System.Deployment.Application.InvalidDeploymentException(HashValidation) - File,UploadTest.exe.manifest,具有与manifest中指定的不同的计算哈希值。 - 来源:System.Deployment - 堆栈跟踪: 在System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath,Hash hash) 在System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath,HashCollection hashCollection) 在System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest,String targetDir,Uri deploymentUri,IDownloadNotification notification,DownloadOptions options,Uri& appSourceUri,String& appManifestPath)

组件商店交易细节 没有可用的交易信息。

1 个答案:

答案 0 :(得分:3)

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

当我使用mage.exe重新设置我的应用程序时,如果应用程序是在.NET 4.5或更高版本中,我需要指定使用带有选项的SHA256RSA

-a sha256RSA

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