本文介绍了ClickOnce部署失败:部署标识与订阅不匹配。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我正在使用Visual Studio 2005.我使用IIS内部部署了一个应用程序。 测试证书已过期,因此我创建了一个新的并将更新发布到内部网站。 请注意,该项目仅设置为"签署ClickOnce显示'并且不签署程序集。 当用户点击他们的图标来运行我们得到的应用程序时此错误....在部署新测试证书之前,它始终更新。 ====== ================================================== =========== PLATFORM VERSION INFO Windows:5.1.2600.131072(Win32NT)公共语言运行时:2.0.50727.42 System.Deployment.dll:2.0.50727.42(RTM.050727-4200) mscorwks.dll:2.0.50727.42(RTM.050727-4200) dfdll.dll:2.0.50727.42(RTM.0507) 27-4200) dfshim.dll:2.0.50727.42(RTM.050727-4200) SOURCES 部署网址: file:/// C:/Documents%20and%20Settings/sharon/Desktop/TurboLabTouch.appref-ms 服务器:Microsoft-IIS / 5.1 X-Powered-By:ASP.NET 部署提供程序URL : http:// vb-developer / TurboTouch / TurboLab-Touch.application 错误摘要以下是错误摘要,这些错误的详细信息将在后面的日志中列出。 *激活C:\Documents和Settings \sharon\Desktop\TurboLabTouch.appref-ms导致异常。检测到以下失败消息: +部署标识与订阅不匹配。 COMPONENT STORE TRANSACTION FAILURE SUMMARY 未检测到任何事务错误。 警告此操作期间没有警告。 操作进度状态 * [2008年2月20日11:23:21 AM]:激活C:\Documents和Settings \sharon \Desktop \TurboLabTouch.appref-ms已经开始。 * [2008年2月2日上午11:23:21] :执行部署指定的必要更新检查。 错误详细信息在此操作期间检测到以下错误。 * [2008年2月20日11: 23:26 AM] System.Deployment.Application.DeploymentException(SubscriptionState) - 部署标识与订阅不匹配。 - 源:System.Deployment - 堆栈跟踪:在System。 Deployment.Application.SubscriptionStore.CheckUpdateInManifest(Subscri ptionState subState,AssemblyManifest部署,Version currentVersion) System.Deployment.Application.Application.Ativtiv.PerformDeploymentUpdate(SubscriptionState subState) System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile,TempFile& deployFile)在System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri,Boolean isShortcut) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) COMPONENT STORE TRANSACTION DETAILS 没有交易信息。 ==================== ============================= 如果我从头开始卸载然后重新安装应用程序,那么一切正常。但是,我试图避免这样做。 有没有办法解决这个问题? 提前致谢 解决方案 部署标识由名称,版本,文化,publickeytoken和处理器体系结构组成。来自证书的应用程序标识的唯一内容是公钥标记(PKT)。通过证书续订,预计身份中的pkt将发生变化。 ClickOnce通过查看两件事来确定新版本属于应用程序系列。 - 如果v1和v2中的DeploymentProviderUri相同。此信息位于部署清单中。 和 - 如果(V1 [DeploymentId]减去版本减去PKT == V2 [DeploymentId]减去版本减去PKT) 示例DeploymentId =" DISPATCH_2005.application,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = acfbf923f868004d,processorArchitecture = msil" 所以名称,文化和processorarcitecture应该是相同的, deploymentprovideruri应该在不同版本中相同,以便将它们视为同一系列。 你能确定是这种情况吗? I'm using Visual Studio 2005. I have an application deployed internally from my using IIS.The Test Certificate expired, so I created a new and published the update to the internal web site.Note that the project is only set to 'Sign the ClickOnce manifests' and does not sign the assembly. When users click on their icons to run the application we get this error .... It has always updated prior to deploying with a new test certificate. ===================================================================PLATFORM VERSION INFO Windows : 5.1.2600.131072 (Win32NT) Common Language Runtime : 2.0.50727.42 System.Deployment.dll : 2.0.50727.42 (RTM.050727-4200) mscorwks.dll : 2.0.50727.42 (RTM.050727-4200) dfdll.dll : 2.0.50727.42 (RTM.050727-4200) dfshim.dll : 2.0.50727.42 (RTM.050727-4200)SOURCES Deployment url : file:///C:/Documents%20and%20Settings/sharon/Desktop/TurboLabTouch.appref-ms Server : Microsoft-IIS/5.1 X-Powered-By : ASP.NET Deployment Provider url : http://vb-developer/TurboTouch/TurboLab-Touch.applicationERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of C:\Documents and Settings\sharon\Desktop\TurboLabTouch.appref-ms resulted in exception. Following failure messages were detected: + The deployment identity does not match the subscription.COMPONENT STORE TRANSACTION FAILURE SUMMARY No transaction error was detected.WARNINGS There were no warnings during this operation.OPERATION PROGRESS STATUS * [2/20/2008 11:23:21 AM] : Activation of C:\Documents and Settings\sharon\Desktop\TurboLabTouch.appref-ms has started. * [2/20/2008 11:23:21 AM] : Performing necessary update check as specified by the deployment.ERROR DETAILS Following errors were detected during this operation. * [2/20/2008 11:23:26 AM] System.Deployment.Application.DeploymentException (SubscriptionState) - The deployment identity does not match the subscription. - Source: System.Deployment - Stack trace: at System.Deployment.Application.SubscriptionStore.CheckUpdateInManifest(SubscriptionState subState, AssemblyManifest deployment, Version currentVersion) at System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState subState) at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, TempFile& deployFile) at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)COMPONENT STORE TRANSACTION DETAILS No transaction information is available.================================================= If I uninstall and then reinstall the app from scratch it all works. However, I was trying to avoid having to do this. Is there a any way to fix this?? Thanks in advance 解决方案Deployment Identity consists of name,version,culture,publickeytoken and processor architecture. The only thing that goes into the application identity from certificate is the Public Key Token (PKT). With certificate renewal, only pkt in the identity is expected to change.ClickOnce determines the new version belongs to the app family by looking into two things.- If the DeploymentProviderUri's in v1 and v2 are the same. This information is in the Deployment manifest.And- If (V1[DeploymentId] minus Version minus PKT == V2[DeploymentId] minus Version minus PKT)an example DeploymentId = "DISPATCH_2005.application, Version=1.0.0.0,Culture=neutral, PublicKeyToken=acfbf923f868004d, processorArchitecture=msil" So name, culture and processorarcitecture should be the same and the deploymentprovideruri should be the same across versions to deem them in the same family.Can you make sure this is the case? 这篇关于ClickOnce部署失败:部署标识与订阅不匹配。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-06 17:11