2

我有一个不需要提升信任且未签名的OOB 应用程序。许多人已经下载它并使用它OOB。

然后我需要使用提升的信任功能,所以我从 Comodo购买了一个合法证书,现在我签署了它。在 localhost 上一切正常 - 它受信任并识别证书。

但是,一旦我上传了新版本,我现有的 OOB 安装(这是旧的未签名、未提升的信任应用程序)并没有执行通常的“新版本检查和更新”。

这一点很重要,因为很多人都安装了它 - 更改为下载的签名、提升信任是否有一些限制?.xap 名称相同且位于相同位置。提琴手查找会看到新的更改,因此它不是缓存问题。可以肯定的是,我用 CCleaner 清除了所有缓存。

我在另一台计算机上卸载了旧的 OOB 应用程序,签名证书在安装时工作正常(即,我收到了不错的“受信任的发布者”安装消息),所以这不是签名问题。你可以在这里看到它(我将保留新版本,因为没有任何危害 - 老用户只是不会知道它!)

我相信这与 Elevated Trust 更改有关?

更新:我做了更多测试:我删除了 Elevated Trust 并再次上传。未更新的旧版本然后 DID 更新,另一台计算机上的新版本(提升信任+签名)未更新。因此,无论是否签名,更新过程似乎都无法处理信任提升的更改。对于所有将被困在旧版本并且永远不知道的用户来说,这是一个大问题。

另一个问题是新签名的应用程序认为该应用程序安装在我的计算机上(旧的未签名的不更新),因此不会显示安装选项。如果有一天他们甚至去网站检查,很少有用户会知道如何卸载它并重新安装它。如果是这样的话,这是一个非常严重的错误。

4

3 回答 3

2

不幸的是,您的用户将需要卸载并重新安装该应用程序。这不是这样的错误(我不相信),而是更多的设计。如果您查看 MSDN 上的这篇文章:http: //msdn.microsoft.com/en-us/library/dd550721 (VS.95).aspx ,您会看到它指出:

Silverlight 4 支持以更高的信任度运行浏览器外的应用程序。受信任的应用程序不能使用本节中描述的更新机制,除非应用程序和更新都已使用相同的有效代码签名证书进行签名。要更新没有有效签名的受信任应用程序,用户必须卸载旧版本并手动安装新版本。

在最后一句话中似乎或多或少地表明(以一种迂回的方式)具有未签名应用程序的用户将需要卸载该应用程序,然后安装具有提升信任度的应用程序来更新它。我读过一些以更准确的方式说明这一点的东西,但不记得在哪里对不起:(。

希望这可以帮助...

克里斯

于 2010-09-25T10:49:02.483 回答
1

在没有收到回复/线索后,我很遗憾地得出结论,这是 SL4 中的一个错误。

我假设由于应用程序现在需要 UI 确认来确认提升的信任,因此现有的不受信任的应用程序无法在更新时处理此 UI,因此它只是不下载它。

出于某种原因,删除提升的信任有同样的问题(受信任的 OOB 应用程序也不会更新非提升的信任更新,这更奇怪)。

所以在我看来,底线是,如果您更改 Elevated Trust,您只是隔离了所有已经安装了您的应用程序的人。

那么似乎有2个选项:

  1. 只需更新应用程序并依靠博客等告诉他们必须卸载并重新安装它。这很糟糕,因为他们不知道有一个已知版本,并且可以在不知道的情况下再使用旧版本 10 年。另外,如果他们转到在线版本,它会认为它已经安装,所以在您卸载旧版本之前不会再次提供安装菜单 - 非常混乱!我认为这是 Tim Heuer 在这里使用签名的 Facebook 应用程序的路线 - http://timheuer.com/blog/archive/2010/04/15/silverlight-client-for-facebook-updated-for-silverlight-4 -release.aspx

  2. 重命名 .XAP 文件并为其创建一个新项目。使用卸载和重新安装说明/链接使旧的 .xap 文件显示“有新版本”的消息。然后,如果他们在没有卸载旧版本的情况下查看新版本,它仍然会安装,因为它是不同的 XAP 名称,并且您至少可以与他们沟通,告诉他们旧版本已死。

还有其他建议吗?!

于 2010-09-17T22:48:42.803 回答
0

修复那些需要更新的用户的一个好方法是为他们提供一个小应用程序来运行,它会自动更新他们。使用这篇文章:安装 Silverlight-out-of-browser 因此最终用户只需下载小 exe,它将卸载“不受信任”的一个,然后重新安装新的。

于 2013-02-25T23:44:41.647 回答