ClickOnce错误地检测到较新的版本格式服务器

时间:2010-08-05 09:48:19

标签: wpf clickonce

我有一个ClickOnce应用程序,用于在启动时检查服务器是否有新版本。 我最近部署了一个新版本(2.0.0.0),同时在服务器上保留旧版本(1.9.9.9)。

在启动时,版本2将通知用户可用的新版本并下载1.9.9.9。

这有可能发生吗?我认为ClickOnce在决定版本是否更新时会单独查看版本号。

由于

编辑 - 这是发布版本

编辑两个

感谢回复人员。 该应用程序由visual studio发布。它在根目录中放置了一个.application文件,其中包含以下信息:

<assemblyIdentity name="CokeAudit.application" version="2.0.0.0" publicKeyToken="0000000000000000" language="neutral" processorArchitecture="x86" xmlns="urn:schemas-microsoft-com:asm.v1" />

服务器上存在的.application文件(我尚未更新到新版本)在根目录中包含一个.application文件,其中包含以下详细信息:

<assemblyIdentity name="CokeAudit.application" version="1.9.9.9" publicKeyToken="4c4bf139090ca52a" language="neutral" processorArchitecture="x86" xmlns="urn:schemas-microsoft-com:asm.v1" />

除了版本号之外,我能看到的唯一不同的是公钥信息。这可能是由于版本1.9.9.9之间我必须在证书过期时禁用应用程序的签名吗?这会导致升级问题吗?

在任何阶段,我都没有使用实际的“正确”证书对应用程序进行签名 - 它始终是由visual studio生成的测试版。

2 个答案:

答案 0 :(得分:3)

ClickOnce不会查看版本号 - 它只是查看ClickOnce存储库顶级目录中的应用程序清单文件。例如,当您需要对发布版执行强制回滚时,这很重要。

确保顶层的应用程序清单与应用程序文件下的2.0.0.0目录中的应用程序清单相同 - 如果不是,只需将清单复制到顶层。

答案 1 :(得分:1)

您是如何发布申请的?如果您使用的是Visual Studio,它会将新的部署清单(.application文件)放在根目录中;理查德邓拉普是对的,你需要自己做。

我见过人们遇到此问题的另一种情况是在网络服务器上启用了缓存。 (我想我只听说过Unix或Apache服务器。)