【问题标题】:ClickOnce Error: The deployment identity does not match the subscriptionClickOnce 错误:部署标识与订阅不匹配
【发布时间】:2011-03-07 05:11:03
【问题描述】:

我正在使用Visual Studio 2008 SP1。

我在本地网络的共享文件夹中使用 ClickOnce 在内部部署了一个 Windows 窗体应用程序。

测试证书 pfx 将于 2035 年到期。

我已多次将更新发布到内部共享文件夹。

请注意,该项目仅设置为“签署 ClickOnce 清单”,而不签署程序集。

现在,我再次发布我的应用程序的新版本。

当用户点击他们的图标来运行应用程序时,我们会得到这个 错误(它总是在使用测试证书部署之前更新)。

实施网址:
file:///C:/Documents%20and%20Settings/Usuario.NOTARIAS3/Men%C3%BA%20Inicio/Programas/GrupoBackup/Expediente%20Electr%C3%B3nico.appref-ms%7C
Dirección URL del Proveedor de la implementación :
file://192.168.13.111/compartida/AdministradorWin.application La
激活 C:\Documents and Settings\Useuario.NOTARIAS3\Menú
Inicio\Programas\GrupoBackup\Expediente Electrónico.appref-ms|迪奥
como resultado una excepción。 Se Detectaron los siguientes mensajes de
错误:
+ 部署标识与订阅不匹配


操作进度状态 * [2/20/2008 11:23:21 AM] :
的激活 C:\Documents and Settings\Usuario.NOTARIAS3\Menú
Inicio\Programas\GrupoBackup\Expediente Electrónico.appref-ms|有
开始了。 * [2/20/2008 11:23:21 AM]:执行必要的更新
按照部署的规定进行检查。

错误详情

  • [21/06/2010 20:33:10] System.Deployment.Application.DeploymentException (SubscriptionState)
  • La identidad de la implementación 与 suscripción 不谋而合。
  • 来源:System.Deployment
  • Seguimiento de la pila: en System.Deployment.Application.SubscriptionStore.CheckUpdateInManifest(SubscriptionState
    subState、Uri updateCodebaseUri、AssemblyManifest 部署、版本
    currentVersion) zh
    System.Deployment.Application.ApplicationActivator.PerformDeploymentUpdate(SubscriptionState&
    subState, String& errorPageUrl) zh
    System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(字符串
    shortcutFile, String& errorPageUrl, TempFile& deployFile) zh
    System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri
    activationUri,布尔 isShortcut,字符串 textualSubId,字符串
    deploymentProviderUrlFromExtension, BrowserSettings browserSettings,
    String&errorPageUrl) zh
    System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象
    州)

我使用 regedit 来搜索这个键:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\7e3a7433abfe6213

PC 未更新

AppId 文件://192.168.13.111/COMPARTIDA/AdministradorWin.application#AdministradorWin.app,文化=中性, PublicKeyToken=4b005ceeffd565b0,处理器架构=msil

版本 = 1.0.0.14

文件名 = Expediente Electrónico

发布者 = GrupoBackup

文件夹名称 = GrupoBackup

PC 已更新(卸载-重新安装,但我想避免它)

AppId 文件://192.168.13.111/compartida/AdministradorWin.application#AdministradorWin.application,文化=中性, PublicKeyToken=4b005ceeffd565b0,处理器架构=msil

版本 = 1.0.0.30

文件名 = Expediente Electrónico

发布者 = GrupoBackup

文件夹名称 = GrupoBackup

SuiteName=OGF 套件

PC 未更新 - PC 更新的变化是:

1.) 套件名称是新值(我在 Visual Studio 的属性“发布”选项卡中设置)

2.) 版本

和 3.)

AdministradorWin.app

来自文件://192.168.13.111/COMPARTIDA/AdministradorWin.application#AdministradorWin.app,

AdministradorWin.application,

来自 文件://192.168.13.111/compartida/AdministradorWin.application#AdministradorWin.application,

如果我卸载然后从头开始重新安装应用程序,一切正常。但是,我试图避免这样做。

我在尝试部署之前成功的项目时收到此错误。

我删除了所有清单后重新尝试了,但仍然没有任何乐趣。

有没有办法解决这个问题?

在发布选项中 -> 清单

使用应用程序清单获取信任信息未选中。

【问题讨论】:

    标签: .net clickonce identity manifest subscription


    【解决方案1】:

    您是否将目标 CPU 从 Any CPU 更改为 x86

    如果您更改了此设置,则必须重新安装应用程序。

    【讨论】:

    • 这发生在我身上。我把它改回 CPUAny 然后它又工作了。稍后我将其改回并让用户重新安装。
    • 我今天就是这样做的。将其更改为 AnyCPU - 现在客户说,即使在卸载后,问题仍然存在。 #难倒
    【解决方案2】:

    当您说以下内容时,您的意思是什么? “更改:我设置了套件名称值;版本和 #AdministradorWin.app,与 #AdministradorWin.application”。

    这是我感兴趣的最后一点。您是否更改了程序集名称?

    有一些设置构成了部署的标识。目标 CPU(如上面 zezespecial 所述)、安装 URL 和程序集名称是其中的三个。你改变了这些吗?您对部署还做了哪些其他更改?

    【讨论】:

    • 如果你改回来,它会解决问题吗?我无法想象这实际上会导致问题,但值得一试。
    • 哪些设置构成了部署的标识?我也有类似的问题
    • 部署提供者 URL(如果填写则使用 UpdateURL;如果没有,如果填写,则使用安装 URL;如果没有,则使用发布文件位置)。目标 CPU。名称(与程序集名称匹配)。您可以在部署清单 (.application) 中看到它们。他们不再使用证书(公钥令牌),这就是为什么您可以更改证书而无需卸载和重新安装。回复到底是什么问题?
    • 啊哈,感谢您的洞察力。就我而言,“InstallFrom”和“InstallURL”设置被意外修改了。我把它改回来了(谢谢 SVN!)它现在可以工作了。
    【解决方案3】:

    '检查发布 -> 安装文件夹 URL' 并确保它没有设置错误(有时它只在发布过程中显示)

    “检查发布 -> 更新...”并确保更新位置没有设置错误。

    绝对确保将这两个设置为与发布文件夹位置相同。您需要勾选“应用程序应检查更新 - 在应用程序启动之前”。

    我必须这样做才能解决我的问题。

    【讨论】:

    • 我已将更新位置从 IP 地址(最初是什么)更改为 DNS 名称,当我将其更改回来时,此问题已解决...
    【解决方案4】:

    在我的例子中,使用 Azure DevOps Pipelines,生成清单的项目设置以某种方式意外设置为 false。我在比较项目文件的源代码控制历史版本时注意到了这一点。我的解决方法是手动(重新)将此属性组插入到 csproj 项目文件中:

    <PropertyGroup>
        <GenerateManifests>true</GenerateManifests>
    </PropertyGroup>
    

    【讨论】:

    • 使用 Azure DevOps Pipelines 的示例? yml ?
    【解决方案5】:

    发布 clickonce 更新后出现“部署标识与订阅不匹配”错误。

    我通过以下方式解决了这个问题:

    1. 删除 clickonce 部署文件夹内容(使用“setup.exe”)。

    2. 删除本地(在用户 PC 上)clickonce 安装缓存。最简单的方法是删除文件夹的所有内容:“C:\Users\[username]\AppData\Local\Apps\2.0”,但这将删除所有 clickonce 应用安装。

    3. 重新编译并重新发布 clickonce 部署。

    4. 在客户端计算机上重新安装 clickonce 应用程序。

    这为我解决了。

    真正清除客户端 clickonce 安装缓存(上面的#2)已经多次为我解决了许多不同但类似的问题。

    【讨论】:

    • 如果您有更多 200 台 PC 客户端,如何使用 powershell 或 bat 单击安装缓存?
    • 我不太熟悉通过 powershell 进行批量/远程管理...但我认为您可以将登录脚本推送到远程计算机上,该脚本会删除缓存文件夹的内容(#2更多)。我刚刚在本地对此进行了测试,只要您的 clickonce 应用程序配置为在下次用户运行该应用程序时自动更新,安装和开始菜单图标就会保留。
    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 2010-10-16
    • 2011-07-17
    • 2021-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2017-02-20
    相关资源
    最近更新 更多