在微软文章中明确指出"如果您使用的是Visual Studio 2010并且面向.NET 4.0,那么在任何情况下都应该没问题。" http://msdn.microsoft.com/en-us/library/ff369721.aspx
我有一个ClickOnce应用程序向公众发布了1年。它由Visual Studio 2010发布了十几次,并以.NET 4.0 Framework为目标,自动升级。一切正常,直到证书即将到期(1周内)。我刚刚从同一供应商那里带来了一个新的,并尝试使用Visual Studio 2010以新证书发布我的应用程序,并以.NET 4.0 Framework为目标。换句话说,除了新证书之外没有任何改变。
现在,如果我启动已安装的应用程序以触发自动升级,我会错误地启动错误窗口"应用程序无法启动。联系应用程序供应商"。 调试消息: .... *激活C:\ Users \ xxxxx |导致例外。检测到以下失败消息: +部署标识与订阅不匹配。
有趣的是,当我尝试将应用程序发布到我的生产网站服务器时,我收到了此错误。但是,如果我在开发网站服务器上尝试完全相同,它的工作正常。
步骤:
步骤:
我的开发服务器和生产服务器配置完全相同:Windows server 2012,.Net Framework 4.5。它们托管在不同的物理服务器上,具有不同的IP地址。
该应用已经安装到数千台机器上,无法让每个人都卸载/安装它。
答案 0 :(得分:4)
它已经解决了。
生产服务器上的App安装程序文件夹始终为http://www.example.com。 但是,在过去的一年中,它被重定向到Web服务器上的http://example.com。当我用旧证书发布应用程序时,这从来就不是问题。所以现在我正在向www.example.com发布带有新证书的应用程序,并且它被Web服务器自动重定向到example.com,尽管它们主要是相同的IP地址。
这可能是Clickonce失败的原因,因为它必须将www.example.com和example.com视为不同的文件夹,尽管它在VS解决方案中始终是www.example.com。 我必须禁用www重定向来续订证书。